如何将字符串"false"转为布尔型false? 1,使用Boolean("false"); ? 错,结果是true。 2,valueOf 如何使用? localStorage['aa'];//"false" valueOf(localStorage['aa']) === false; //VM1231:1 Uncaught TypeError: Cannot convert undefined or null to object valueOf("false") //VM1283:1 Uncaught TypeError: Cannot convert undefined or null to object 语法:string.valueOf() 查询:This method is usually called automatically by JavaScript behind the scenes, and not explicitly in code. null == ''; //false null == 'null';//false null == {}; //false 让我陷入沉思,为什么不是true? 经查询,类型转换是: undefined => "undefined"(字符串) null => "null"(字符串) true => "true"(字符串) false => "false"(字符串) 所以null == '';的值为false,因为null在转为字符串时,是null。 但是 null==undefined;//true 是例外。 如同所示: 1,字符串转数字,有三种方式 (1)转换函数 parseInt(), parseFloat() (2)显式转换 Number("123"); (3)利用js的弱类型转换。 "123"-0. 权威指南:类型转换作为 《第三章 类型、值和变量》 单独一节,足以说明该问题重要性。 重点讲了三种情况: (1)显示类型转换 (2)toString()和valueOf()方法 (3)转换函数 parseInt(), parseFloat() (4)对象转换为原始值 (5)使用运算符 +,-等。