上一篇文章中有提到过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有一个特殊的安全防范机制。

typeof需要注意的内容相关推荐

  1. TypeScript基础之typeof 类型操作符

    前言 文中内容都是参考https://www.typescriptlang.org/docs/handbook/2/typeof-types.html , 以及参考 TypeScript 之 Type ...

  2. js增加属性_前端js基础2

    JavaScript ECMAScript(ES):规定了js的一些基础的核心知识(变量.数据类型.语法规范.操作语句等) 3/5==6/7 说出ES5和ES6的区别? DOM:document ob ...

  3. javascript Dom总结

    1.数组 var arr = array(); 可以指明个数,也可以不用指明,或者直接填写参数使用","隔开 或者直接使用[]声明, var arr = ["nane&q ...

  4. JS之如何判断数据类型

    版权声明:本文为神州灵云作者的原创文章,未经神州灵云允许不得转载. 本文作者:Xiang 1.使用场景 1.1.调试时需要知道某变量的类型,以此来验证部分功能是否正常. 1.2.需求中需要对变量的类型 ...

  5. 尚硅谷es6新特性笔记

    尚硅谷es6新特性笔记 一.let与const let的变量声明以及声明特性 const的变量声明以及声明特性 const.let.var 三者之间的区别 二.变量解构赋值 三.模板字符串 四.对象的 ...

  6. Ajax实现在textbox中输入内容,动态从数据库中模糊查询显示到下拉框中

    功能:在textbox中输入内容,动态从数据库模糊查询显示到下拉框中,以供选择 1.建立一aspx页面,html代码 <HTML>     <HEAD>         < ...

  7. python读取html内容 dom获取_python学习笔记十三 JS,Dom(进阶篇)

    JS介绍 JavaScript 是属于网络的脚本语言!JavaScript 被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies,以及更多的应用:JavaScript 是因特网上最流 ...

  8. Orchard模块开发全接触3:分类的实现及内容呈现(Display)

    一:分类用现有技术怎么实现? 实际就是创建 Query 和 Projection,如果不知道怎么做,参考:Orchard之在前台显式一个属于自己的列表(在这篇里,还进行了稍稍拓展),当然,基础的知道, ...

  9. 为什么 React Elements 会有 $$typeof 这个属性?

    简评:debug 的时候看到 element 对象中有 $$typeof 这属性,于是查了一下这到底干嘛的. 我们知道,通过 JSX 创建一个 React Elements 时: <marque ...

最新文章

  1. Zabbix安装(server和agent)及基本配置
  2. 天天Linux-编译和调试程序
  3. 本地使用Rfam 12.0+
  4. 我的第一个wp8小程序
  5. 从用户空间直接访问系统调用
  6. Flutter 成功在鸿蒙上运行;微信 8.0 发布;支付宝和微信支付达到反垄断标准 | 极客头条...
  7. 首个中国AI芯片收购案完成:深鉴创立2年后并入赛灵思
  8. 6.6 AdaBoost实战
  9. pr cpu100%_Pr插件
  10. 2000元以内办公用计算机,2000元以内买什么笔记本 便宜实用笔记本【推荐】
  11. ListView 优化之 ViewHolder 复用机制
  12. Python 算法之 动态规划详解
  13. think.php教程,Thinkphp_thinkphp教程_自学php网
  14. opencv中的透射变换
  15. 将VC++黑白屏蔽图转换为Cocos2dx中可用的png
  16. python3 笔记9 字典
  17. 【imessage苹果群发苹果推】软件安装应用程序/框架/ gcdwebservers
  18. 以梦为马,不负韶华|电巢科技延安大学飞鹰计划实习班精彩回顾
  19. nmn几岁可以吃,nmn多少岁可以吃,归纳总结!
  20. Ubuntu登陆不进去的一个原因

热门文章

  1. Java面向对象:对象的概念及面向对象的三个基本特征
  2. 微信跳转浏览器提示_微信跳转外部浏览器跳转提示的2种实现方式
  3. Linux 启动流程学习
  4. 世人都晓AI好 AI芯片知多少?
  5. Linux之间ssh免密码登录
  6. SQL中inner join、outer join和cross join的区别
  7. 尺取法 POJ 3320 Jessica's Reading Problem
  8. 【HTML5CSS3进阶学习01】气泡组件的实现
  9. YII框架截取字符串长度
  10. 终端服务器超出了最大允许连接数