JavaScript知识点 --javaweb学习笔记

什么是Javascript?

  • JavaScript(简称:JS)是一门跨平台、面向对象的脚本语言。是用来控制网页行为的,它能使网页可交互
  • JavaScript 和Java 是完全不同的语言,不论是概念还是设计。但是基础语法类似
  • JavaScript在1995 年由 Brendan Eich 发明,并于 1997 年成为 ECMA 标准
  • ECMAScript6(ES6)是最新的JavaScript 版本(发布于 2015 年)

ECMA:ECMA国际(前身为欧洲计算机制造商协会),制定了标准化的脚本程序设计语言ECMAScript,这种语言得到广泛应用。而javascript是遵守ECMAScript的标准的

Javascript引入方式

内部脚本:将JS代码定义在HTML页面中

  • JavaScript代码必须位于<script></script>标签之间
  • 在HTML文档中,可以在任意地方,放置任意数量的<script>
  • 一般会把脚本置于<body>元素的底部,可改善显示速度

外部脚本:将JS代码定义在外部JS文件中,然后引入到 HTML页面中

  • 外部JS文件中,只包含JS代码,不包含<script>标签
  • <script>标签不能自闭合

书写语法

区分大小写:与Java 一样,变量名、函数名以及其他一切东西都是区分大小写的
每行结尾的分号可有可无

注释:

  • 单行注释://注释内容
  • 多行注释:/*注释内容*/

输出语句

  • 使用 window.alert()写入警告框
  • 使用 document.write()写入 HTML 输出
  • 使用 console.log()写入浏览器控制台

变量

  • JavaScript 中用 var 关键字(variable 的缩写)来声明变量
  • JavaScript 是一门弱类型语言,变量可以存放不同类型的值
  • 变量名需要遵循如下规则:
    组成字符可以是任何字母、数字、下划线()或美元符号($)
    数字不能开头
    建议使用驼峰命名

注意事项

  • ECMAScriot6 新增了 let 关键字来定义变量。它的用法类似于var,但是所声明的变量,只在 let 关键字所在的代码块内有效,且不允许重复声明
  • ECMAScript6新增了 const 关键字,用来声明一个只读的常量。一旦声明,常量的值就不能改变

数据类型

JavaScript中分为:原始类型和引用类型

原始类型:

  • number:数字(整数、小数、NaN(Not aNumber))
  • string:字符串,单双引皆可
  • boolean:布尔。true,false
  • null:对象为空
  • undefined:当声明的变量未初始化时,该变量的默认值是 undefined

使用 typeof 运算符可以获取数据类型

运算符

  • 算术运算符:+,-,*,/,%,++,--
  • 赋值运算符:=,+=,-=,*=,/=,%=
  • 比较运算符:>,<,>=,<=,!=,==,===
  • 逻辑运算符:&&,||,!
  • 三元运算符:条件表达式?true_value:false_value

==与===

==会进行类型转换,===不会进行类型转换

类型转换

字符串类型转为数字:

  • 将字符串字面值转为数字。如果字面值不是数字,则转为NaN

其他类型转为boolean:

  • Number:0和NaN为false,其他均转为true
  • String:空字符串为false,其他均转为true
  • Null和 undefined:均转为false

函数

介绍:函数(方法)是被设计为执行特定任务的代码块
定义:JavaScript 函数通过 function 关键字进行定义,语法为:

注意:

  • 形式参数不需要类型。因为JavaScript是弱类型语言
  • 返回值也不需要定义类型,可以在函数内部直接使用return返回即可

调用:函数名称(实际参数列表)

定义方式二:

注意事项

  • JS中,函数调用可以传递任意个数的参数

Array

JavaScript 中 Array对象用于定义数组
定义:

访问:

注意事项

JavaScript 中的数组相当于|ava 中集合,数组的长度是可变的,而 avaScript是弱类型,所以可以存储任意的类型的数据

属性

方法

箭头函数(ES6):

是用来简化函数定义语法的。具体形式为:(..)=>{..},如果需要给箭头函数起名字: var xxx=(..)=> {..}

String

String字符串对象创建方式有两种:

属性

方法

Javascript自定义对象

定义格式:

调用格式:

JSON

  • 概念:JavaScript Object Notation,JavaScript对象标记法
  • JSON 是通过 JavaScript 对象标记法书写的文本
  • 由于其语法简单,层次结构鲜明,现多用于作为数据载体,在网络中进行数据传输

JSON-基础语法

定义

示例

value 的数据类型为:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null

JSON字符串转为JS对象

JS对象转为JSON字符串

BOM

概念:Browser Object Model 浏览器对象模型,允许]avaScript与浏览器对话,JavaScript 将浏览器的各个组成部分封装为对象

组成:

  • Window:浏览器窗口对象
  • Naviqator:浏览器对象
  • Screen:屏幕对象
  • History:历史记录对象
  • Location:地址栏对象

Window

介绍:浏览器窗口对象

获取:直接使用window,其中 window.可以省略

属性

  • history:对 History 对象的只读引用
  • location:用于窗口或框架的 Location 对象
  • navigator:对 Navigator 对象的只读引用

方法

  • alert():显示带有一段消息和一个确认按钮的警告框
  • confirm():显示带有一段消息以及确认按钮和取消按钮的对话框
  • setInterval():按照指定的周期(以毫秒计)来调用函数或计算表达式
  • setTimeout():在指定的毫秒数后调用函数或计算表达式

Location

介绍:地址栏对象

获取:使用 window.location 获取,其中 window.可以省略

属性:

href:设置或返回完整的URL

DOM

概念:Document Object Model,文档对象模型

将标记语言的各个组成部分封装为对应的对象

JavaScript通过DOM,就能够对HTML进行操作:

  • 改变 HTML 元素的内容
  • 改变 HTML元素的样式(CSS)
  • 对 HTML DOM 事件作出反应
  • 添加和删除 HTML 元素

HTML中的Element对象可以通过Document对象获取,而Document对象是通过window对象获取的

Document对象中提供了以下获取Element元素对象的函数:

  1. 根据id属性值获取,返回单个Element对象
  2. 根据标签名称获取,返回Element对象数组
  3. 根据name属性值获取,返回Element对象数组
  4. 根据class属性值获取,返回Element对象数组

事件监听

事件:HTML事件是发生在HTML元素上的“事情”。比如:

  • 按钮被点击
  • 鼠标移动到元素上
  • 按下键盘按键

事件监听:JavaScript可以在事件被侦测到时执行代码

方式一:通过 HTML标签中的事件属性进行绑定

方式二:通过 DOM 元素属性绑定

常见事件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/815731.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Spring Boot】深入解密Spring Boot日志:最佳实践与策略解析

&#x1f493; 博客主页&#xff1a;从零开始的-CodeNinja之路 ⏩ 收录文章&#xff1a;【Spring Boot】深入解密Spring Boot日志&#xff1a;最佳实践与策略解析 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 Spring Boot 日志一. 日志的概念?…

OpenHarmony实战开发-FaultLoggerd组件。

简介 Faultloggerd部件是OpenHarmony中C/C运行时崩溃临时日志的生成及管理模块。面向基于 Rust 开发的部件&#xff0c;Faultloggerd 提供了Rust Panic故障日志生成能力。系统开发者可以在预设的路径下找到故障日志&#xff0c;定位相关问题。 架构 Native InnerKits 接口Sig…

汇舟问卷:国外问卷调查适合哪些人?

在这个快节奏的时代&#xff0c;朝九晚五的工作模式似乎已经成为许多人的固定生活模式。然而&#xff0c;这种日复一日的工作方式往往让人感到疲惫和厌倦&#xff0c;我们渴望找到一种既能赚钱又能兼顾生活的方式。 海外问卷调查作为一种适合在家做的赚钱方式&#xff0c;这两…

【Golang学习笔记】从零开始搭建一个Web框架(二)

文章目录 模块化路由前缀树路由 前情提示&#xff1a; 【Golang学习笔记】从零开始搭建一个Web框架&#xff08;一&#xff09;-CSDN博客 模块化路由 路由在kilon.go文件中导致路由和引擎交织在一起&#xff0c;如果要实现路由功能的拓展增强&#xff0c;那将会非常麻烦&…

基于Springboot+Vue的Java项目-课程作业管理系统(附演示视频+源码+LW)

大家好&#xff01;我是程序员一帆&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &am…

rocketmq面试

broker主从复制机制 同步复制&#xff1a; 等Master和Slave均写成功后&#xff0c;才反馈给客户端写成功状态&#xff1b; 如果Master出故障&#xff0c; Slave上有全部的备份数据&#xff0c;容易恢复&#xff0c;但是同步复制会增大数据写入延迟&#xff0c;降低系统吞吐量。…

使用LNMP部署动态网站环境

目录 实验环境 一、配置LNMP架构环境 二、验证部署的LNMP 动态网站环境是否可用 三、配置过程中遇到的问题及解决思路 实验环境 centos7 192.168.81.131/24 一、配置LNMP架构环境 概念及配置手册参考第20章 使用LNMP架构部署动态网站环境。 | 《Linux就该这么学》 安装g…

Java编程练习之接口的声明及实现

1.创建老师类和学生类&#xff0c;两个类都实现了问候接口和工作接口&#xff0c;模拟上课的场景&#xff0c;运行效果如下&#xff1a; package Zaria; interface hello{public void speak(); } interface work{public void dowork(); } class Student implements hello,work{…

gitee如何新建仓库并用小乌龟上传代码

目录 1.登录并注册gitee账号 2.创建新仓库 3.填写仓库信息 4.初始化本地仓库 5.上传数据 7.gitee官网查看上传文件 8.如何安装小乌龟 1.登录并注册gitee账号 2.创建新仓库 登录后&#xff0c;点击页面右上角的「」按钮&#xff0c;选择「新建仓库」。 3.填写仓库信息 …

入门Adaptive AUTOSAR(一) -- 为什么要提Adaptive(1)

目录 1.Adaptive AUTOSAR 1.1 AUTOSAR的由来 1.2 AUTOSAR的方法论 1.3 Why Adaptive 2.小结 1.Adaptive AUTOSAR 1.1 AUTOSAR的由来 2017年&#xff0c;国内绝大部分供应商还在思考如何用最小代价切入到AUTOSAR Classic Platform的时候&#xff0c;AUTOSAR Adaptive Pla…

把持中国互联网流量的“四大家族”,各个牛逼plus!

中国互联网80%流量被四大家族把持着&#xff0c;其余要么去这些家族批发流量&#xff0c;要么去抢占剩余20%。 以下是对中国互联网流量四大家族的介绍和代表性的流量入口产品&#xff1a; 百度系&#xff1a; 百度是中国最大的搜索引擎公司&#xff0c;其搜索引擎百度是中国互…

【位运算】Leetcode 两整数之和

题目解析 371. 两整数之和 算法讲解 异或的本质就是无进位相加&#xff0c;但是我们需要处理进位&#xff0c;就需要知道哪一位上有进位&#xff0c;再让无进位相加的结果 进位即可&#xff0c;在重复这个过程&#xff0c;当进位等于0的时候&#xff0c;说明相加的过程已经结…

OSPF防环文档

OPSF在区域内会产生俩类LSA&#xff1a;Router LSA &#xff0c;Network LSA 路由器以自己为树根构建最短路径树 &#xff0c;这里的最短路径树按两步形 成&#xff0c;第一步&#xff0c;仅考虑路由器和传输网络之间的连接。通过 Dijkstra 算法&#xff0c;根据链路状态数据…

吴恩达2022机器学习专项课程(一) 第二周课程实验:特征工程和多项式回归(Lab_04)

目标 探索特征工程和多项式回归&#xff0c;使用线性回归来拟合非常复杂甚至非线性的函数。 1.为什么线性回归能拟合非线性函数&#xff1f; fxw*xb&#xff0c;属于线性回归的扩展&#xff0c;这个公式在数学中不属于线性&#xff0c;因为有x&#xff0c;而在机器学习中属于…

图文教程 | 2024Typora最新版免费激活使用教程(新旧版可用)

一、打开官网下载最新版Typora Typora 官网下载 安装&#xff1a; Typora中文官网&#xff1a;https://typoraio.cn/ Typora官网&#xff1a;https://typora.io/releases/all 官网长这个样子 下面这个不是官网&#xff01;&#xff01;&#xff01;&#xff01;注意&#x…

通讯录的实现(顺序表版本)

我们知道通讯录是基于顺序表的前提下&#xff0c;要写好通讯录我们就要深入了解好顺序表。我们先来看看什么是顺序表。&#xff08;注意今天代码量有点多&#xff0c;坚持一下&#xff09;。冲啊&#xff01;兄弟们&#xff01; 顺序表的简单理解 对于顺序表&#xff0c;我们首…

用AI的视角看世界

前言 2024年将是Ai人工智能在各个行业垂直领域发展的元年。 随着2022年11月openai 的大语言模型chatgpt3.5的诞生&#xff0c;已经预示着互联网时代&#xff0c;移动互联网时代即将迎来新的变革&#xff0c;也预示着web3.0和元宇宙更近了一步。 回顾历史&#xff0c;互联网的…

使用hexo+gitee从零搭建个人博客

一、环境准备 1.Node.js&#xff1a;下载 | Node.js 中文网 (nodejs.cn) &#xff0c;Hexo 是基于Node.js 的博客框架 教程&#xff1a;https://blog.csdn.net/weixin_52799373/article/details/123840137 node -v npm -v 安装 Node.js 淘宝镜像加速器 &#xff08;cnpm&am…

大模型应用工具 LangChain 入门书籍: LangChain 简明讲义

书籍信息 书名&#xff1a;《LangChain 简明讲义&#xff1a;从 0 到 1 构建 LLM 应用程序》出版社&#xff1a;电子工业出版社书籍链接&#xff1a;https://item.jd.com/14105705.html书籍配套代码&#xff1a;https://github.com/kebijuelun/langchain_book 书籍背景 计算机…

力扣LeetCode138. 复制带随机指针的链表 两种解法(C语言实现)

目录 题目链接 题目分析 题目定位&#xff1a; 解题思路 解题思路1&#xff08;粗暴但是复杂度高&#xff09; 解题思路2&#xff08;巧妙并且复杂度低&#xff09; 题目链接 138. 复制带随机指针的链表https://leetcode-cn.com/problems/copy-list-with-random-pointer/ …