一、JavaScript 的 typeof 返回哪些字符串?
答:返回Number,String ,Boolean,undefined,object,function;
二、请写出以下运算结果:
alert(typeof null);//object 返回的object
alert(typeof {});//object 返回的object
alert(typeof undefined);//undefined
alert(typeof NaN);//number NaN的数据类型是number
alert(NaN == undefined);//false NaN和任何数不相等
alert(NaN == NaN);//false NaN和任何数不相等(包括自身)
var str = "123abc";
alert(typeof str++);//number 首先str要转化为数字结果是Number(false)结果是NaN,再++,再返回类型number;
alert(str);//NaN
三、例举至少 3 种强制类型转换和 2 种隐式类型转换?
Number paresInt paresFloat Blooean String toString
+ - * / %
四、
console.log(typeof undefined === typeof NULL);//true(返回的都是undefined类型) 这里的NULL和null不同,NULL代表意义是声明了一个变量没有负值,则它为NULL
console.log(typeof undefined == typeof NULL);//同理
console.log(1<2<3);//true 先比较1<2返回结果是true,再用true和3比较,true转化后为1,1<3最后的结果是true。
console.log(3>2>1);//false 同理
console.log(1 / 0);//Infinity 无穷 (个人理解:当1除以0时,得到伤是0乘任何一个数结果都是0,即是商为无穷,即结果为Infinity)
console.log(1 % 0);//NaN
console.log(0 / 0);//NaN
console.log(0 % 0);//NaN
console.log(NaN / 0);//NaN
五、
1、分别写出以下每个变量的值;
var result1 = 5 - null+false; //5 算式中没有字符串都转为数字,即是5-0+0=5;
var result2 = "NaN" - 1+"abc";
NaNabc
var result3 ="3"+ 5 - 3;//前两个字符串拼接得到字符‘35’,后面再做减法时转化为数字35-3得到32;
var result4 = 5 - "" + true; // 6 减法运算时把‘’转化为0,再做运算
就是5-0+true,这时5+true两边没有字符,都转化为数字进行运算.
var result5 = 5 - "2"+"abc"; //3abc 做减法时隐式转换5-2=3;再做加法时是字符串品接(因为+号两边有字符会将另一边数字转为字符)
var result6 = 5 - null+2; //7
2、分别写出每个输出的值;
console.log(undefined==undefined) //true null和ubdefined 是相等的。
console.log(undefined==0) // false undefined不能转换结果为false
console.log(null==undefined) //true 虽然在== !=中Number不能转换null和ubdefined,但是==中两者是相等的
console.log(4=='abc') ; //false
console.log(NaN==NaN);//false NaN跟谁都不等
console.log(NaN!=NaN);//true NaN跟谁都不等
console.log(null==null);//true
console.log(null!==undefined);//true 数据类型不等
console.log(3!=="3")//true
六、
console.log(null == undefined);//true
console.log(null == 0);//false 在计算时null首先不能转换在== 和!=中转化。
console.log(null == []);// false 在计算时null首先不能转换在== 和!=中转化,再有就是Number([])在转对象时,会变成NaN
console.log(null == null);//true
console.log(null == undefined == null);//false 在比较null == undefined时返回true,再用true和null比较结果就是false
console.log(null >= 0);// true 这里不是== != null可以被转换为0,再比较得到true
console.log(null <= 0);// true 这里不是== != null可以被转换为0,再比较得到true
true
七
var h5course = false;
var result = h5course / 0;(返回NaN,在做除法运算时,会调用Number转化false得到0,然后0/0返回的是NaN)
if(result){
console.log(result * 2 + '2' + 4);
}else{
console.log(!result * 2 + '2' + 4);// ‘224’NaN是假执行这一步 !result返回true,做乘法运算转化为1,1*2+'2'+4 拼接得到224;
}