js基础
选择器的优先级
权重值越大优先级越高。(无论权重是多少,内联样式表的优先级都是最高的)
元素选择器、*权重值:1
类选择器权重值:2
id选择器权重值:4
群组选择器:看每个独立的选择器的权重值分别是多少
后代、子代选择器:所有被>或者空格隔开的选择器的权重之和
后代选择器比较权重的时候:先比较第一大独立选择器,如果第一大相同,就比第二大的选择器,依次类推。
一、认识js
1.什么是js
js是JavaScript的缩写,是一门专门用来控制前端页面的编程语言(属于脚本语言)
js是web标准中的行为标准 - 主要负责网页中内容的修改
2.js代码写在哪儿
- 内联js - 将js代码写在标签的事件属性中
- 内部js - 将js代码写在script标签中
- 外部js - 将js代码写在js文件中,然后在html用script标签导入
注意:同一个script标签只能在导入外部js和写内部js两个功能中选一个。
3.js能干什么
- 修改标签内容
- 修改/获取标签的属性
- 修改标签的样式
- 在网页中插入html代码
4.js代码怎么写(语法)
- js大小写敏感
- 一行语句结束一般不需要分号,箭头函数之前要加分号
- 命名采用驼峰式命名
- js中的标识符:由字母、数字、下划线和$组成,数字不能开头
二、变量
1.定义变量
语法:
- 变量名 = 值
- var 变量名 = 值
- let 变量名 = 值
- const 变量名 = 值
2.四种方法的区别
- 前三种方式定义的变量,变量的值可以修改;用const定义的变量的值不能修改
- 变量名 = 值 - 这儿的变量是全局变量(不管在哪儿定义都是全局变量)
- var 变量名 = 值 - 在函数中定义是局部变量,没有定义在函数中是全局的
- let 变量名 = 值 - 在{}定义的是局部变量,没有定义在{}中的全局的
3.同时定义多个变量
- 变量名1=变量名2=变量名3=…=值
- var/let/const 变量1,变量2,变量3,…
三、运算符
1.数学运算符:+、-、*、/、%、++、–
++ - 自增1
– - 自减1
2.比较运算符===,>,!==,<,>=,<=, ==,!=
结果都是布尔值
console.log(10>20) // false
console.log(5 == '5') // true
console.log(5 === '5') // false
console.log(5 === 5) // true
注意:js中的比较运算符,不支持连写表示范围
3.逻辑运算符
- && - 逻辑与运算
- || - 逻辑或运算
- ! - 逻辑非运算
4.赋值运算符
=、+=、-=、/=、%=
5.三目运算符:?:
表达式?值1:值2 - 判断表达式的结果是否为true,如果是,整个运算表达式的结果是值1,否则是值2
不同运算符的优先级和python一样。
四、分支和运算结构
1.if分支结构
- 单分支
if(条件语句){
代码块
}
- 双分支
if(条件语句){
满足条件要执行的代码块
}else{
条件不满足执行的代码块
}
- 多分支
if(条件语句1){
代码块1
}else if(条件语句2){
代码块2
}else if(条件语句3){
代码块3
}
...
else{
代码块N
}
执行过程和应用和python一样
2.switch
语法;
switch(表达式){
case 值1:{
代码块1
}
case 值2:{
代码块2
}
case 值3:{
代码块3
}
...
defualt:{
代码块N
}
}
说明:
- switch、case和defualt是关键字
- case语句后面的{}可以省略
- 表达式可以是任何有结果的表达式
- 值也必须是有结果的表达式,通常会直接写一个固定的数据
执行过程:先计算表达式的值,然后表达式的值依次和每个case后面的值进行比较,那个case后面的值和表达式的值相等,就将这个case作入口,依次执行和这个case以及它后面所有的代码块,直接执行完或者遇到break就结束。如果没有case后面的值和表达式的值相等,就将defualt作为入口。(注意:defualt不一定要放在最后)
3.while循环
- while
while(条件语句){
循环体
}
- do-while(保证循环至少执行一次)
do{
循环体
}while(条件语句)
4.for循环
- for-in
for(变量 in 序列){
循环体
}
注意:变量取得不是元素而是下标或者属性。
- 标准for
for(表达式1;表达式2;表达式3){
循环体
}
执行过程:先执行表达式1,然后判断表达式2的结果是否为true,如果为true执行循环体,执行完循环体再执行表达式3;再判断表达式2是否为true,为true执行循环体,执行完再执行表达式3;依次类推,如果判断表达式2的结果为false,整个循环结束。
5.continue和break
和python中的用法一样。
五、函数
1.函数的定义
function 函数名(参数列表){
函数体
}
有默认值的参数可以放在没有默认值参数的前面
2.函数的调用
函数名(实参列表)
注意:js中使用关键字参数传参无效,只能使用位置参数。
调用函数的时候如果不给没有默认值的参数传参,不会报错,这个参数的值是undefined。
3.arguments
注意:js中每个函数中都有一个局部变量 arguments,用来接收这个函数在调用的时候传的所有实参。
4.匿名函数
function (参数列表){
函数体
}
5.箭头函数
(参数列表)=>{函数体}