1、六大数据类型:
1、number 数值型
2、string 字符串
3、boolean 布尔值 true false
4、null 空
5、undefined 未定义
6、混合型6.1 object对象 { }
6.2 数组 [ ]
6.3 函数 function
2、隐式转换:
1.运算符
+,两边只要是字符就是拼接
-, 只做算数运算
数字-数字 算数运算
数字-"数字" 转换后数字运算
其他的都显示NaN
||, 左true || 任意 --》返回左边的值
左false || 任意 --》返回右边的值
只要有一个是对的,就是对的; 左边是true,就直接返回左边的,如果不是再看右边的,
右边的true,返回右边的;两边都是0,null,undefined,false,返回三位还是0,null,
undefined,false
x
&&, 左true || 任意 --》返回左边的值
左false || 任意 --》返回右边的值
同理|| 两边都是对的才显示对的。左边为false,返回false;左边true,看右边,此时右边
是决定因素,右边true,则整个判断true,右边false,则整个判断false。因此左边为
true,右边是啥返回啥
NaN和任何运算都是NaN,可是NaN干不过字符 NaN+"3"--->"NaN3"
2.if()内
2.1 非0为true,0为false
2.2 非空字符为true,空字符为false
2.3 undefined为false
2.4 所有对象(除了null)为true
2.5 NaN为false
2.6 null为false
3.false为0,true为1
undefined定义了,但是未赋值
not a defined未定义,报错
3、例子
if(0){
console.log("ok")
}else{
console.log("no") //
}
if(""){
console.log("ok")
}else{
console.log("no") //
}
if(undefined){
console.log("ok")
}else{
console.log("no") //
}
if({}){
console.log("ok") //
}else{
console.log("no")
}
if(NaN){
console.log("ok")
}else{
console.log("no") //
}
特殊的值
console.log(typeof null) //object
if(null){
console.log("ok")
}else{
console.log("no") //
}
console.log(1+1); //2
console.log(1+"1"); //11
console.log(1+false); //1
console.log(1+true); //2
console.log(true+false); //1
console.log("1"+true); //1true
console.log(NaN+"1"); //NaN1
console.log(NaN+true); //NaN
console.log(undefined+1); //NaN
console.log(undefined+NaN); //NaN
console.log(undefined+null);//NaN
console.log(null+1); //1
var str;
console.log(str) //undefined
console.log(str2) //str2 is not a defined