摘要:浏览器对没有声明过的变量进行处理过程并不是很好,容易让人误以为是。还需要注意的是,虽然是一个变量,但并没有报错,这是因为有一个特殊的安全防范机制。
上一篇文章中有提到过typeof,但是讲的比较粗略,概括如下:
现在需要概括一下注意点,如下:
1、值和类型
js中只有值才有类型,变量没有类型。js不做“类型强制”,也就是说,语言引擎不要求变量总是持有与其初始值同类型的值。一个变量可以现在被赋值为字符串类型值,随后又被赋值为数字类型值。 执行typeof操作,得到的结果不是该变量的类型,而是该变量持有的值的类型,因为js中的变量没有类型。
2、undefined和undeclared
变量在未持有值的时候为undefined,此时typeof返回undefined; 还没有在作用域中声明过的变量,此时typeoof返回的也是undefined。
浏览器对没有声明过的变量进行处理过程并不是很好,‘b is not defined’容易让人误以为是‘b is undefined’。强调一下,‘undefined’和‘is not defined’是两码事。 而typeof处理undeclared变量的方式则是更让人郁闷:
对于undeclared(或者not defined)变量,typeof照样返回‘undefined’。还需要注意的是,虽然b是一个undeclared变量,但typeof b并没有报错,这是因为typeof有一个特殊的安全防范机制。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/101170.html
摘要:的基础语法的语法是区分大小写的注意在中是区分大小写的变量名称不能是中文代码示例一花一世界控制台调用效果图语法中的空格与换行注意并不是的语法内容可有可无的建议使用因为这样会使代码看的更清晰利于阅读代码示例代码一花一世界中的分号可选项语法并 JavaScript的基础语法: JavaScript的语法是区分大小写的 注意: 在JavaScript中是区分大小写的 变量名称不能是中文 代...
摘要:尚未声明的变量,只能执行一项操作,就是检测该变量的数据类型。表示的是空对象指针,因此,使用操作符得到的结果是。 这篇笔记的内容对应的是《JavaScript高级程序设计(第三版)》中的第三章。 1.语法 1-1 区分大小写 ECMAScript 中的一切都是区分大小写的。 test 和 Test 首字母不同,那么它们就不相同 typeof 和 typeOf 中间有个字母大小写不同...
摘要:题目二答案会报错未定义这段代码中混合了函数声明和函数表达式的形式,而函数实际上是绑定到了上而不是。除此之外函数声明与函数表达式的语法其实是等价的。因此,在外层函数函数体内的两个函数声明,都会提升到之前执行。 这是我在Javascript微信公众号上看到的一篇文章,觉得挺有意思的,所以转载过来跟大家分享一下,同时,对这些题目也加上了一些我个人的理解,如果有不对的地方,请大家指正。 题目...
摘要:直达第一课体验第二课基础类型和入门高级类型第三课泛型第四课解读高级类型第五课什么是命名空间回顾第二课的时候为了更好的讲解基础类型所以我们讲解了一部分高级类型比如接口联合类型交叉类型本节课我会把剩余高级类型都讲完知识点摘要本节课主要关键词为自 直达 第一课, 体验typescript 第二课, 基础类型和入门高级类型 第三课, 泛型 第四课, 解读高级类型 第五课, 什么是命名空间(na...
阅读 2808·2023-04-26 02:49
阅读 3350·2021-11-25 09:43
阅读 3302·2021-10-09 09:43
阅读 2940·2021-09-28 09:44
阅读 2402·2021-09-22 15:29
阅读 4428·2021-09-14 18:02
阅读 2748·2021-09-03 10:48
阅读 3398·2019-08-30 12:47