JS基础知识
1.运算符
1.赋值运算符 =
2.算术运算符
+ - * / % (加减乘除、取余)
++ -- 自增自减运算符
注意:
1.自增或自减运算符在单独与变量结合时,放前面与放后面没区别
a++ ++a
2.如果自增或自减运算符与其他运算符结合使用,要区分前缀和后缀
-先找变量,从变量位置从右向左结合运算符
-如果做前缀,先++/--,再进行赋值或其他运算;
-如果做后缀,就先结合其他运算符,再进行++/--;
如:
num = 5;
var res = num++;
结果: res = 5 num = 6
var res = ++num;
结果: res = 6 num = 6
3.关系运算符(比较运算符)
> 大于
>= 大于等于
< 小于
<= 小于等于
== 等于
!= 不等于
=== 恒等
!== 不恒等
注意:关系运算符的运算结果为boolean类型
1.数字与数字之间的比较
2.数字与字符串进行比较
首先会自动将字符串转换为数字再进行比较,如果转换成功,
按照数字之间的比较进行运算,如果转换失败,
将变成数字与NaN之间的比较,结果永远为False
3.字符串之间的比较
进行每位字符Unicode码的比较,当前位如果相同,
就后移至下一位再进行比较,当前位如果不同,直接出结果。
et:
"10" > "5"; //false
4. == === != !==
相等:
用于判断两个值是否相等,在比较时,会自动转换数据类型,
只要值相等,结果就为True
恒等:
用于判断两个变量的数据类型和值是否完全相等,
不会进行数据类型转换,只有当操作数的数据类型保持一致,
值相等,才为True.
不等:
在两端值不相等的情况下,返回True。
不恒等:
两个操作数中,数据类型与值只要有一个不相等,就返回True,
否则返回False。
5.逻辑运算符
进行多项比较,并将结果组合为单一的布尔值。
&&: 逻辑与 (一假即假)
-等同于 Python and
-左右为表达式,只有两个表达式的结果都为真,逻辑与的结果才为真。
||: 逻辑或 (一真即真)
-等同于 Python or
-只要有一个条件为真,结果就为真
! : 逻辑非 (非真即假,非假即真)
-等同于Python not
-对现有条件的结果进行取反操作
6.位运算符
程序中所有的数据在计算机中都是以二进制存储的,
位运算,就是对二进制位进行操作。
1.按位与: &
将整数转换为二进制形式,每一位都进行与操作
注意:
任何数字与1进行位与操作,结果为1时,表示操作数为奇数;
结果为0,操作数为偶数;可以用来判断数字奇偶。
2.按位或: |
3.按位异或: ^
两个数字的二进制进行比较,相同为0,不同为1;
注意:
异或操作可以在不借助第三方变量的情况下,变换两个变量的值(交换)
et:
var a = 3, b = 5;
a = a ^ b;
b = a ^ b;
a = a ^ b;
7.三目运算符
-有三个操作数
语法:
条件表达式 ? 表达式1 : 表达式2;
-先判断条件表达式的结果,为真则执行表达式1;为假,则执行表达式2
2.流程控制语句
1.顺序结构:
按照代码书写顺序,从上到下执行
2.分支结构(选择结构)
作用:
根据条件选择某一段代码执行
1. if语法
if(条件){
执行语句
}
注意:
1. if()后面的{}可以省略,省略之后,只控制该结构下的第一条语句。
2. 条件尽可能是布尔类型的
3. 任何非0值都为真,0为假,以下条件都为假
if(0) {}
if(0.0) {}
if(NaN) {}
if("") {}
if(undefined) {}
if(null) {}
2. if - else结构
if(条件){
执行语句 //条件为真时执行的操作
}
else{
执行语句 //条件为假时执行的操作
}
3. 多重分支
if(条件1){
执行语句 //条件1为真时执行的操作
}
else if(条件2){
执行语句 //条件2为真时执行的操作
}
else if(条件3){
执行语句 //条件3为真时执行的操作
}
...
else{
执行语句 //以上条件都不成立时,执行的操作。
}
4. switch语句
在进行值的判断时用的比较多
语法:
switch(变量){
case 值1:
执行语句
break; //跳出switch语句,不再向后进行匹配.
case 值2:
执行语句
case 值3:
执行语句
default:
代码块 //所有case都匹配失败时执行
}
注意:
1.变量与case值的匹配是用恒等来判断的--数据类型和值都相等
2.break表示跳出switch语句,后面的判断语句不执行。
3.default关键字用于在表达式不匹配前面给出的任何一种情形
时,最终执行的操作。
3.循环结构
重复执行某一段代码
三要素
循环变量
循环条件
循环体
1.while循环
while(循环条件){
循环体
}
2.do-while循环
do{
循环体
}while(循环条件);
3.while与do-while的区别
while循环先判断循环条件,为真才执行循环体;
do-while循环不管条件是否成立,先执行循环体,后判断循环条件。
即使循环条件不成立,也执行一次循环体。
4.for循环
for(1.定义循环变量; 2.判断循环条件 3.更新循环变量){
循环体
}
5.for循环与while循环的区别
1.相同点:执行流程相同
2.不同点:
while循环常用于不确定循环次数的场合。
for循环常用于确定循环次数的场合。
6.循环控制
break:
用在循环体中,表示跳出循环,结束整个循环。
continue:
用在循环体中,表示跳出本次循环,开始下一次循环。
7.循环嵌套
-允许在一个循环中,嵌套另一个循环
3.函数
1.作用:
实现多条语句的封装
实现代码复用
2.函数的使用
1.先声明后使用(js中不强制)
3.语法:
函数声明 关键字 function
function 函数名(参数列表){
函数体
返回值
}
4.注意:
1.JS中函数声明使用function关键字
2.函数名自定义,遵照变量名命名规范,见名知意
3.参数列表:参数表示函数体执行所需要的数据,可以为空。
为空时()不能省略,参数之间使用,隔开
4.返回值,使用return关键字,将函数体内部执行的结果传递给外界使用,
只能返回一个值,返回值不需要的话,可以省略;
注意:
return一定要写在函数体的末尾,return关键字后面的代码都不执行。
5.匿名函数
var fn = function(){
函数体
};
6.函数调用
函数名();
函数名(参数列表);
var res = 函数名(参数列表);
注意:
1.函数参数分为形参和实参,函数声明时,使用形参;
函数调用时,传递实参。
2.函数如果有返回值,在调用时,需要定义变量接收返回值。
元素绑定
<button onclick="函数名();">点击</button>
8.变量的作用域
变量的作用域指的是变量起作用的范围
2.分类
1.全局作用域
处在全局作用域中的变量就是全局变量
1.在function之外通过var声明的变量都是全局变量,
在任何地方都可以省略
2.声明变量时,省略var关键字的,一律是全局变量,
推荐使用var关键字,不要省略
2.局部作用域
-局部作用域中的变量就叫局部变量
-JS中局部作用域指的是函数作用域
1.在函数内部使用var关键字声明的变量都是局部变量,
只在当前函数作用域中可以访问,外界无法访问
2.局部变量出了函数就不能访问了
注意:
在函数中访问变量:
如果当前函数中没有该变量,就访问全局作用域中的变量;
如果当前函数中定义了该变量,全局中也有相同的变量名,
函数就近访问变量,即访问当前函数中的变量。