数据类型转换:
1.布尔值类型:
(1)boolean(value)把值转换成boolean值
(2)在进行比较时也会得到一个布尔值,比较字符串和数字的结果可以正确显示,两个字符串比较时是从左到右依次比较unicode编码值大小。
(3)!取反
(4)= =: 即使不同类型,会转换成数字比较。
(5)=== :会判断类型,即使数值相同类型不同也会返回“false”
2.布尔值转换规则:
(1)数据类型–数字:除了NaN和0都是真
(2)数据类型–字符串:所有非空字符串都是真
(3)数据类型–布尔值:true和false
(4)数据类型–对象(函数):true
(5)数据类型–对象(element):能找到的就是true,找不到的就是false
(6)数据类型–对象([]和{}):true
(7)数据类型–对象(null):false
(8)数据类型–未定义:false
3.= =比较:在判断前将两边转换成数字然后比较其值,特殊情况:
(1)如果两边由null或undefined时,不会转换成数字,因此null和undefined只与自己和对方相等
(2)由于字符串没有固定大小,因此数字类型转换会变成NaN,所以不会发生数字类型转换,而是从左到右依次比较unicode编码大小
(3)由于对象数字类型转换也是NaN,因此不会发生数字类型转换,而是按照对象在内存中的地址比较,地址相同则相等,否则不相等。

数据类型转换的注意事项:
1.不要用new Number()/Boolean()/String()等构造函数实例化的方式去创建包装对象,因为这样创建出来的是object类型
2.判断Array使用Array.isArray(arr)
3.判断null请使用myVar === null
4.number对象(非变量(调用toString()报SyntaxError:

自定义属性:

循环中的问题:如果在循环时绑定事件函数,循环是在页面刷新时执行的,而函数执行时循环已经结束,这时的i的值已经变成最后一个值,在函数中使用就是出现问题。解决方法:使用自定义属性,将i的值在循环中保存下来,在函数内部需要的时候使用该自定义属性。

练习1:如何让’10’>'9’正确的比较出大小,试着用多种方法来实现

JavaScript布尔值取反 js中的布尔值_字符串


练习2:做3个按钮,起始value为0,每次点击时对应按钮的value值+1

JavaScript布尔值取反 js中的布尔值_类型转换_02


练习3:在上题的基础上增加一个数组[“A”,“B”,“C”,“D”],要求每个按钮在点击时,让其value值显示为数组数据的循环(A->B->C->D->A循环)

JavaScript布尔值取反 js中的布尔值_JavaScript布尔值取反_03

练习4:在点击按钮(3个)时用索引值把arr(3个)里的数据输入到p(3个)标签里

JavaScript布尔值取反 js中的布尔值_数据类型_04