一.浏览器结构
shell+内核(渲染引擎,js引擎)
二.类型转换
-
显式类型转换
函数 解释 Number(mix) 1.Number ()想尽一切办法转成数字, eg:undefined=>NaN, null =>0 parselnt(string,radix) 1.只能把数字转成整数,对非数字字符串会转换为NaN,eg:‘a’=>NaN,undefined => NaN, null =>02.radix,基底,表示以radix进制转换10进制,详见用法 parseFloat(string) 转成浮点数,从第一个点的后的数字位 完截至 toString(radix) 转换为字符串,eg: num.toString(8)把10进制转换为转换为8进制,undefind、NaN不能转换为字符串会报错 String(mix) 转换为字符串 Boolean() 转换为布尔型 parselnt用法: 1.可以把以数字开头的字符串,转成整数(从数字位开始读,读到非数字位截止) eg: "100ab" => 100 2.parseInt(参数string,radix基底),把参数以基底为进制数向十进制转换, eg: parseInt(10,16)//以16进制把10转换为十进制的整数
应用
:2进制转换为16进制?- 用parselnt(string,2)把2进制转换为10进制
- 用toString(16)转换为16进制
-
隐式类型转换:内部都是显示类型转换
函数 内部函数 isNaN() eg:console.log( isNaN (“abc”))解释:Number( 'abc ')-- >NaN; + +/— +/-(一元正负) Number() + String() -*/% Number() && ||! Boolean() < > <= >= Number() == != Boolean() 特殊
:- undefined/null > 0 false
undefined/null < 0 false
undefined/null ==0 false - undefined == null true
- NaN == NaN false
- NaN === NaN false
3.不发生类型转换
=== !==
未定义变量的特殊情况
:typeof(未定义变量):可以打印未定义变量的值,返回的字符串
eg:未定义的a,console.log(typeof(typeof(a))打印啥? typeof(a)=>'undefind' undefind是字符串类型
- undefined/null > 0 false
类型转换试题:
-
alert(typeof(a)); undifined
-
alert(typeof(undefined)); undefined
-
alert(typeof(NaN)); number
-
alert(typeof(null)); object
-
alert(typeof(NaN)); number
-
var a = “123abc”;
alert(typeof(+a)); number
-
alert(typeof(!!a)); 报错a 没定义
-
alert(typeof(a + “”)); String
-
alert(1 ==“1”); true
-
alert(NaN == NaN); false
-
alert(NaN == undefined); false
-
alert(“11”+11); 1111
-
alert(1 === “1”); false
-
alert(parselnt(“123abc”)); 123
-
var num = 123123.345789;
alert(num.toFixed(3)); 123123.346