1、js的隐式转换
string类型再与任何类型做‘+’运算时,会将他们都转换成string类型,然后再进行拼接(只限做+运算时)
如果是 ‘-’ 运算,那么会将string类型转换成Number类型进行运算。
两个string类型做转换,比较他们的unicode编码。
布尔类型再做转换时,会转换成Number类型进行输出。
如果需要不发生数据类型转换的比较,使用全等或全不等.
注意:
NaN与任何数据作比较包括自身,得到的结果都是false
js里的返回值:number string boolean undefined object function
js是弱类型,它的数据类型由数据来决定
1、tostring类型 转换成字符串 但是undefined和null不能直接调用tostring()
2、parseInt 转换成Number类型 (整数) 舍弃小数位
3、parseFloat 转换成Number类型(浮点型)
4、Number类型 如果数据中包含了非法字符(只要不是小数点和数字) 则会返回NaN
5、boolean类型 除了 0 “” ‘’ 0.0 null undefined NaN以外都为true
2、js的表达式和运算符
什么是表达式:由运算符和操作数组成的式子 每一个表达式都有值
运算符分为算数运算符和逻辑运算符:
算数运算符: + - * / % ++ –
关系运算符 : > >= < <= == != === !==(最终的结果都是布尔类型)
逻辑运算符:|| && !多条件之间的判断关系
|| (或) : 两个表达式满足其中一个那么结果就为true
&& (与):两个表达式必须同时满足那么结果才为true ,只要有一个的值为flase 那么 它的值就是false
单目运算符:++ – !
双目运算符: + - * / > < ...
三目运算符:三个操作数/表达式
表达式1(boolean类型的结果) ? 表达式2 : 表达式3 :
补充:
1、& 按位 与 将两边的操作数都转换为二进制
运算规则:只要对应的二进制数都为1的时候,那么为1,否则为0
作用:可以用来判断奇偶性 二进制中最后一位数为1为奇数,0是偶数0
2、| 按位 或
运算规则:比较每一位上的数字,两个数字中只要有一个数字为1,那么就问1,否则为0
3、>> 按位右移 将二进制数 向右移动几位 左边以0补位
通俗点来理解:向右移动几位就去掉末尾几位数。在前面补0
4、<< 按位左移 将二进制数向左移动几位 右边以0补位
与上面相反 向左移动几位 就从第一个数去掉几位 后面的用0 来补
5、异或 ^ (英文键盘下的shift+6)
规则: 比较没位上的数字,只有一个为1的时候,该为1,否则为0
可以用来交换两个变量的值
6、取反 ~
取反会在原来的相反数的基础上进行-1 双重取反那么的到数会是数据本身。
3、函数
什么是函数: 预定好一段代码,然后反复调用它使用它
定义函数:
function 函数名([参数列表]){
//重复执行的代码块
return 返回值; 结束函数的执行,返回值只能返回一个数据 如果不写返回的是undefined
}
调用函数:
var 变量名 =函数名(参数);
如果函数调用的时候不传递需要的参数 那么参数的值为undefined
函数在重名的情况下 :后面的会覆盖前面定义的函数
函数的作用域:分为两种 局部作用域和全局作用域
局部作用域: 只能在当前的函数中访问(函数结束执行时,定义的变量)
全局作用域:一旦定义,在代码任何位置都可以访问(浏览器关闭时,销毁定义的变量)