[js] ReferenceError和TypeError有什么区别?
[js] ReferenceError和TypeError有什么区别?
ReferenceError
指的是引用出错,比如尝试访问未定义的变量,或者提前访问无提升的变量,都会引发这个错误:
console.log(foo); // ReferenceError: foo is not defined
let foo = 1;TypeError
指的是类型出错。
众所周知JavaScript是一个弱类型的语言,这既是它的优点,也经常被人诟病。你永远也不知道 a + b 是在做数值加减还是字符串拼接,而且似乎 a + b 几乎从来也不会报错。
而tc39自 ES5 到 ES6 以来,将 TypeError 的频率几乎翻了4倍之多。目的就是为了规范和强调类型这一概念,避免过于模糊类型这一概念导致JavaScript对于语义的不确定性。
Symbol() + 1; // TypeError: Cannot convert a Symbol value to a number({ toString: () =>({}) }) + 'a'; // TypeError: Cannot convert object to primitive value
这样使得JavaScript更为规范,当一个方法的参数需要一个 number 但却收到了一个 object,与其让它返回 NaN,不如果断地抛出 TypeError 吧。
个人简介
我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。
主目录
与歌谣一起通关前端面试题
[js] ReferenceError和TypeError有什么区别?相关推荐
- JavaScript中的ReferenceError和TypeError两种错误的区别
转自JavaScript中的ReferenceError和TypeError两种错误的区别 作为前端工作人员,在调试JavaScript程序的时候经常遇到两个错误:ReferenceError和Typ ...
- uniapp 获取到js文件var一个变量怎么获取到这个变量值_浅析Js中const,let,var的区别及作用域...
理解:let变量的作用域只能在当前函数中 js中const,let,var的区别及作用域_lianzhang861的博客-CSDN博客blog.csdn.net 全局作用域中,用 const 和 l ...
- JS中 let 和var的区别
JS中let和var 的区别 简单介绍let var的常见变量提升 ES6可以用let定义块级作用域变量 let配合for循环的独特应用 let没有变量提升与暂时性死区 let变量不能重复声明 简单介 ...
- Node.js: exports 和 module.exports 的区别
我理解的exports 和 module.exports 的区别,欢迎大家吐槽~ 为了更好的理解 exports 和 module.exports 的关系,我们先来补点 js 基础.示例: app.j ...
- js中parentNode和parentElement的区别和用法
了解本篇的基础必须知道什么是节点,关于html dom节点知识点和节点类型的知识,分别看<js节点都有哪些类型?怎么判断是哪种节点类型?>和<js属性节点获取和移除>,下面直接 ...
- Js中的style,currentStyle,getComputedStyle()区别
Js中的style,currentStyle,getComputedStyle()区别 样式表有三种方式: 1.内嵌样式(inline Style)-是写在Tag里面的,内嵌样式只对所有的Tag有效 ...
- js箭头函数和普通函数区别
js箭头函数和普通函数区别 实验环境:nodejs v12.16.1 箭头函数不能作为构造函数,而普通函数可以 箭头函数没有原型,而普通函数有 箭头函数return可以省略语句块.(如果=>右边 ...
- js中的extend的用法及其JS中substring与substr的区别
1. JS中substring与substr的区别 之前在项目中用到substring方法,因为C#中也有字符串的截取方法Substring方法,当时也没有多想就误以为这两种方法的使用时一样的. ...
- [js] json和对象有什么区别?
[js] json和对象有什么区别? JSON 是对象,但对象不一定是 JSON.对象是由属性和属性值组成,也就是 KEY->VALUE 对. 对象中的 value 可以是任意的数据类型,包括函 ...
最新文章
- python123动物重量排序_python基本常识
- 热烈欢迎乔丹入驻博客园
- 设计模式16——Memento设计模式
- 封装一个流水号ID生成器:id-spring-boot-starter
- 这几天又看了Gosu,发现也是蛮有意思
- centos6实现kvm嵌套虚拟化
- POJ 1741tree-点分治入门
- 前端学习(2399):关于编辑代码编辑器
- plsql轻量版游标的使用2
- 在Eclipse或工作空间中 ,复制或修改项目后,把项目部署后发现还是原来的项目名称...
- 仿高德地图点亮城市html,高德地图怎么点亮城市_高德地图点亮城市教程_3DM手游...
- 如何在WordPress中使用SEO写作助手来改善SEO
- ROS中NodeHandle nh与NodeHandle nh(“~“)区别
- Django新手十个开发指导
- 阴暗的底层阶级版罗密欧与朱丽叶——甲贺忍法帖
- 趣头条递交招股书 将冲刺移动内容聚合第一股
- MinIO InvalidEndpointException: invalid host问题解决
- ubuntu10.10下更新无线网卡驱动
- 微信小程序项目实例——体质计算器
- 爱因斯坦场方程之Reissner-Nordstrom(电磁真空)解