js的一些潜在规则使用分析
目录
- 为什么开发中建议使用void 0 来代替undefined
- 为什么开发中将未赋值的变量赋值为null,而不是undefined
- String类型的长度
- 为什么parseInt在将字符串转为数字的时候,需要指定第二个参数
- 对象转基本数据类型的规律
- JavaScript 中对象独有的特色
- JavaScript对象分类
- 宿主对象
- 内置对象
- 特殊行为对象
为什么开发中建议使用void 0 来代替undefined
因为 JavaScript 的代码 undefined 是一个变量,而并非是一个关键字,这是JavaScript 语言公认的设计失误之一,所以,我们为了避免无意中被篡改,我建议使用void 0 来获取 undefined 值。
MDN上的解释: undefined
is a property of the global object. That is, it is a variable in global scope. The initial value of undefined
is the primitive value undefined
。
为什么开发中将未赋值的变量赋值为null,而不是undefined
null 表示的是:“定义了但是为空”。所以,在实际编程时,我们一般不会把变量赋值为 undefined,这样可以保证所有值为 undefined 的变量,都是从未赋值的自然状态。
String类型的长度
因为 String 的意义并非“字符串”,而是字符串的 UTF16 编码,我们字符串的操作charAt、charCodeAt、length 等方法针对的都是 UTF16 编码。所以,字符串的最大长度,实际上是受字符串的编码长度影响的。
JavaScript 中的字符串是永远无法变更的,一旦字符串构造出来,无法用任何方式改变字符串的内容,所以字符串具有值类型的特征。
JavaScript 字符串把每个 UTF16 单元当作一个字符来处理,所以处理非 BMP(超出U+0000 - U+FFFF 范围)的字符时,你应该格外小心。
"\uD835\uDD46" // "