JavaScript
JavaScript是一种专门用网页开发的编程语言。
主要负责网页内容的变化
根据放的位置可以分为
内部js:写在script标签中(script标签可以放在html的任何位置)
内联js:写在标签的事件属性中
外部js:写在js文件中,在html中通过script标签导入
注意:一个script标签可以用来导入外部js,可以用来写内部js代码,但是两个只能取其一
注释:
单行注释: //
多行注释:/*注释内容*/
标识符:由字母、数字、下划线和$组成,数字不能开头
常见数据:
数字:直接写,100,23.8,-234,+23.9,3e4
字符串:单引号和双引号, ’ hello ‘、 “hello”、’ \thello\n123\u4e00 ’
布尔值:true、false
数组:[元素1,元素2,…]
对象:{属性名:属性值,…}
分支:if、switch
if分支语法:
if (条件语句1){
代码段1
}else if(条件语句2){
代码段2
}else{
代码段3
}
循环:while、for
while循环语法:
while (条件语句){
循环体
}
for-in循环语法:
for (变量 in 序列){
循环体
}
注意:变量 - 取的是索引
for循环语法:
for (表达式1,表达式2,表达式3){
循环体
}
相当于:
表达式1
while (表达式2){
循环体
表达式3
}
运算符:
数学运算: +、-、*、/、%、**
自增自减:变量a++(先判断再加1),++变量a(先加1再判断),变量a–,--变量a
比较运算:>、<、>=、<=、(值相等)、!=、=(完全相等)、!==
不支持连写表示范围
逻辑运算:&&(逻辑与)、||(逻辑或)、!(逻辑非)
赋值运算:=、+=、-=、*=、/=、%=、**=
优先级:数学运算>比较运算>逻辑运算>赋值运算
函数
function 函数名(形参1,形参2,…){
函数体
}
注意:不支持关键字参数、不定长参数
js中的每个函数调用的时候实参的个数不受形参的控制,arguments可以在函数获取函数所有的实参
匿名函数
function (形参1,形参2,…){
函数体
}
变量的创建
- 变量名 = 值
定义全局变量 - var 变量名 = 值
如果在函数中使用var定义的变量,只能在函数里面使用 - let 变量名 = 值
如果在{}中用let定义的变量,只能在{}里面用 - const 变量名 = 值
counst定义的变量不可变(不能修改变量的值)
字符串:String - 不可变、有序容器
- 支持从0开始的下标
- 获取字符串长度: 字符串.length
- 字符串拼接:字符串1 + 字符串2
- 字符串切片:字符串.slice(开始下标, 结束下标) - > [开始下标, 结束下标)
数组:Array - 可变有序序列
- 创建数组的两种方式
new array(元素1,元素2,…)
[元素1,元素2,…] - 下标获取元素
数组.下标 - 获取元素个数
数组.length - 相关方法
增: 数组.push(元素)
删:
数组.pop()
数组.splice(下标,数量)
改: 数组[下标] = 值
排序: 数组.sort(函数)
求和: 数组.reduce(函数, 初始值))
对象:Object - 既是Python中的字典,又是Python的对象
- 创建对象
直接创建对象: 对象名={属性1:属性值1,属性2:属性值2,…}
对象名=new 类名()
类 = 创造函数
function 类名(属性1,属性2,…){
this.属性1=属性1
this.属性2=属性2
this.对象方法1 = function(){对象方法代码}
return this
} - 获取属性值
对象[属性名]
对象.属性名 - 修改属性
对象[属性名]=值
对象.属性名=值
DOM
DOM - document object mode(文档对象模型)
js中自带一个对象叫document,这个对象指向整个网页内容部分
document常用方法:
1) 操作标签 - 标签的增删改查
查 - 获取标签
直接获取标签
document.getElementById(id值) - 获取指定id对应的标签,返回一个标签对象
document.getElementsByClassName(class值) - 获取class值是指定值的标签,返回一个容器
document.getElementsByName(name值) - 获取name值是指定值的标签,返回一个容器
document.getElementsByTagName(标签名) - 获取标签名是指定值的标签,返回一个容器
间接获取标签
获取子标签:标签对象.children - 返回一个容器由多个标签对象组成
获取父标签:标签对象.parentElementchildren - 返回一个标签对象
获取兄弟标签:标签对象.nextElementSibling - 返回一个容器
创建标签