数据类型强制转化的规则
- 强制转换数据类型方法
- Number(exp) 将表达式的返回值强制转换为数字类型
- String(exp)…
- Boolean(exp)
- 转换规则
- 转Number
- String:纯数字转换结果是字面量的形式转换,其它所有情况均为NaN.
- Boolean:true为1,flase为0.
- 转String:所有类型转换为字符串类型就以字面量的形式转换.
- 转Boolean
- Number:除了0和NaN以外全部返回true.
- String:除了空字符串以外其它情况全为true.
- undefined:undefined是false.
- null:null是false.
// 数字的转化其它类型,如果将双引号里的值改为文字则显示的是NaN,string的除了以数字为字符串可以转化为number之外,其它字符串的转化均为NaN,若果强制转化布尔值得类型则true显示的是1,flase显示的是0 console.log(Number("1")); console.log(Number("xingkong")); console.log(Number("文化")); console.log(Number("undifined")); //字符串的转化类型,所有类型都可以转化为字符串类型 console.log(String(jdf)); console.log(String(123)); console.log(String(undefined)); console.log(String(NaN)); // boolean的转化类型,只有转化为0,或者是NaN,undefined,null返回的值为flase之外,其余的大多数都是返回true console.log(Boolean(1)); console.log(Boolean("wen")); console.log(Boolean(-1)); console.log(Boolean(1.23)); console.log(Boolean(0)); console.log(Boolean(null)); console.log(Boolean(undefined)); console.log(1 === 1); console.log(1 == "1"); //js将会自作主张的帮你进行转化,所以不建议使用 //其他类型和boolean类型转化进行比较,js会将boolean类型转化为与另外操作数相一致的数据类型 console.log(2 == true); comsole.log("文化" == true) console.log(NaN == NaN); //有NaN的话一律返回flase console.log(undefined == null) //返回的是true // 1.逻辑与和逻辑或整个表达式的返回值一定会返回左端或者是右端操作数的某一个 //2.返回哪一个操作数取决于运算符左端操作数强制转化为boolean值得结果运算是哪一个
- 转Number
判断相等的总结
- 数字和boolean进行比较1 == true为true. 2 == true为false.
- NaN == NaN 返回false
- undefined == null 返回true
判断具体的流程(了解)
- 有NaN,一律返回false
- 有布尔类型,布尔类型转换成数字比较
- 有string类型,有两种情况:
1.对象:对象用tostring方法转换成string相比.
2.数字:string类型转换成数字进行比较 - null和undefined不会相互转换,相等
- 有数字类型,和对象相比,对象用valueof转换成原始值进行比较.
- 其它情况,一律返回false
语句
- if 语句(和c语言中用到的基本一样)
if(exp){
分支1
}
else{
分支2
}