目录
  • 为什么开发中建议使用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" // "                        

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。