摘要:有种内置类型,分别是除对象之外,其他统称为基本类型。另一个需要注意的是数组确切地说,数组也是的一个子类型我们可以通过下面的方法检查变量是不是数组处理未声明的变量时,会返回这是因为有一个特殊的安全防范机制。
js有7种内置类型,分别是
undefined null boolean string number symbol object
除对象之 Object 外,其他统称为“基本类型”。
符号 symbol 是ES6 中新增
除 null 以外的六种类型均有同名的字符串值与之对应
typeof undefined === "undefined"; // true typeof true === "boolean"; // true typeof 1 === "number"; // true typeof "1" === "string"; // true typeof {} === "object"; // true typeof Symbol() === "symbol"; // true typeof null === "object"; // true
typeof 返回值为 object 的值中,只有 null 为假值,所以我们可以用下面方法检查变量是否为 null
var a = null; (!a && typeof a === "object"); // true
再来看下面一段代码
typeof function a(){} === "function"; // true
虽然 typeof 会为函数返回多带带的字符串值 function,但是规范约定它实际上是 object 的一个“子类型”。具体来说,函数是“可调用对象”,它有一个内部属性 [[Call]],该属性使其可以被调用。
另一个需要注意的是数组
typeof [] === "object"; // true
确切地说,数组也是 object 的一个“子类型”
我们可以通过下面的方法检查变量是不是数组
var a = [] Array.isArray(a) // true Object.prototype.toString.call(a) === "[object Array]" // true
typeof 处理未声明的变量时,会返回 undefined, 这是因为 typeof 有一个特殊的安全防范机制。这样我们可以安全的检查变量是否声明了
if (!nodeclar) { // 如果nodeclar为声明,会报错 // ... } if (typeof nodeclar !== undefined) { // 不报错 // ... }
需要注意的是
在对变量执行 typeof 操作时,得到的结果并不是该变量的类型,而是该变量持有的值的类型,因为 JavaScript 中的变量没有类型。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/90096.html
摘要:的分句会创建一个块作用域,其声明的变量仅在中有效。而闭包的神奇作用是阻止此事发生。依然持有对该作用域的引用,而这个引用就叫做闭包。当然,无论使用何种方式对函数类型的值进行传递,当函数在别处被调用时都可以观察到闭包。 date: 16.12.8 Thursday 第一章 作用域是什么 LHS:赋值操作的目标是谁? 比如: a = 2; RHS:谁是赋值操作的源头? 比如: conso...
摘要:函数类型检测是的子类型,其属性为参数个数,但是判断结果有内建函数原生函数常见的有,可能被当作构造函数来使用,创建出来的是封装了的基本类型值。构造函数可以不带关键字。建议使用和来进行显示强制转换。 前言 此篇小结来源与《你不知道的JavaScript》和《JavaScript高级程序设计》的结合??或许是的,龟速总结中... 七种内置类型 null undefined boolean ...
摘要:本书属于基础类书籍,会有比较多的基础知识,所以这里仅记录平常不怎么容易注意到的知识点,不会全记,供大家和自己翻阅不错,下册的知识点就这么少,非常不推介看下册上中下三本的读书笔记你不知道的上读书笔记你不知道的中读书笔记你不知道的下读书笔记第三 本书属于基础类书籍,会有比较多的基础知识,所以这里仅记录平常不怎么容易注意到的知识点,不会全记,供大家和自己翻阅; 不错,下册的知识点就这么少,非...
摘要:这时候控制台看到的是对象的快照,然而点开看详情的话是这段代码在运行的时候,浏览器可能会认为需要把控制台延迟到后台,这种情况下,等到浏览器控制台输出对象内容时,可能已经运行,因此会在点开的时候显示,这是的异步化造成的。 本书属于基础类书籍,会有比较多的基础知识,所以这里仅记录平常不怎么容易注意到的知识点,不会全记,供大家和自己翻阅; 上中下三本的读书笔记: 《你不知道的JavaScri...
摘要:但是如果非全局的变量如果被遮蔽了,无论如何都无法被访问到。但是如果引擎在代码中找到,就会完全不做任何优化。结构的分句中具有块级作用域。第四章提升编译器函数声明会被提升,而函数表达式不会被提升。 本书属于基础类书籍,会有比较多的基础知识,所以这里仅记录平常不怎么容易注意到的知识点,不会全记,供大家和自己翻阅; 上中下三本的读书笔记: 《你不知道的JavaScript》 (上) 读书笔记...
阅读 3833·2021-10-08 10:12
阅读 4342·2021-09-02 15:40
阅读 939·2021-09-01 11:09
阅读 1607·2021-08-31 09:38
阅读 2545·2019-08-30 13:54
阅读 2250·2019-08-30 12:54
阅读 1245·2019-08-30 11:18
阅读 1402·2019-08-29 14:06