![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
你不知道的js
手写Hello World工程师
https://github.com/Max-hearted
展开
-
你不知道的js第一章-with和eval
eval关键字可以接受一个字符串参数,利用这段传进来的字符串执行动态创建的代码。如果传入的参数不是字符串,那么JavaScript会返回这个参数。如果传入的参数为字符串,那么JavaScript会当做语句来执行,如果编译不通过会抛出异常。如果编译通过就开始执行这段js代码并返回最后一个表达式或语句的值。with声明实际是根据你传递进入的对象另外创建了一个新的此法作用域。with关键字可以改变词...原创 2018-08-30 21:40:51 · 180 阅读 · 0 评论 -
你不知道的JavaScript——严格相等和宽松相等
宽松相等(loose equals)== 和严格相等(strict equals)=== 都用来判断两个值是否“相 等”,但是它们之间有一个很重要的区别,特别是在判断条件上。 常见的误区是“== 检查值是否相等,=== 检查值和类型是否相等”。听起来蛮有道理,然而 还不够准确。 正确的解释是:“== 允许在相等比较中进行强制类型转换,而 === 不允许。”如果进行比较的两个值类型相同,...原创 2018-09-22 20:32:56 · 258 阅读 · 0 评论 -
你不知道的JavaScript——toString、toNumber、toBoolean
数组的toString()方法默认把所有的单元字符串化了以后再用逗号,连接起来。JSON 字符串化 工具函数 JSON.stringify(..) 在将 JSON 对象序列化为字符串时也用到了 ToString。所有安全的 JSON 值(JSON-safe)都可以使用 JSON.stringify(..) 字符串化。安全的 JSON 值是指能够呈现为有效 JSON 格式的值。 为了...原创 2018-09-20 20:06:35 · 5382 阅读 · 0 评论 -
你不知道的JavaScript —— 基本类型
null类型只有一个值null,undefined类型也只有一个值undefined。所有的变量在赋值之前默认值都undefined,void运算符的返回值也是undefined。数字类型有几个特殊的值,包括NaN(指的是无效的数字、+Infinity、-Infinity、-0)。简单标量基本类型字符串和数字等通过值复制、传递,而复合值(对象等) 通过引用复制来赋值 / 传递。Java...原创 2018-09-20 10:40:43 · 159 阅读 · 0 评论 -
你不知道的JavaScript(中) -- 数组和数值
在JavaScript编程语言中,赋值和参数传递可以通过值复制和引用复制来完成。但是JavaScript里面没有指针,引用的工作机制也不尽相同。简单值如undefined、字符串、数值、null、布尔值和Symbol可以通过值复制来复制和传递。复合值——对象(封装的对象、数组和声明的函数)总是通过引用复制的方法来复制和传递。 ...原创 2018-09-19 18:03:07 · 148 阅读 · 0 评论 -
你不知道的js -- 对象委托与类的实现
面向对象的代码设计风格: 使用对象关联后的代码:原创 2018-09-14 11:14:56 · 475 阅读 · 0 评论 -
你不知道的JavaScript——上下文规则
contine foo 并不是指“跳转到标签 foo 所在位置继续执行”,而是“执行 foo 循环的下一轮循环”。所以这里的 foo 并非 goto。上例中 continue 跳过了循环 3 1,continue foo(带标签的循环跳转,labeled-loop jump) 跳过了循环 1 1 和 2 2。 ...原创 2018-09-23 22:44:32 · 199 阅读 · 0 评论 -
你不知道的js -- 对象
文字语法(推荐使用的方式):var obj = {key : value};构造形式:var obj = new Object();obj.key = value; 对象的基本类型:·string·boolean·number·object·null·undefined注意,简单基本类型(string、boolean、number、nul...原创 2018-09-06 20:20:06 · 144 阅读 · 0 评论 -
你不知道的js -- this的箭头函数
箭头函数表达式的语法比函数表达式更短,并且没有自己的this,arguments,super或 new.target。这些函数表达式更适用于那些本来需要匿名函数的地方,并且它们不能用作构造函数。(参数1, 参数2, …, 参数N) => { 函数声明 }(参数1, 参数2, …, 参数N) => 表达式(单一)//相当于:(参数1, 参数2, …, 参数N) =>...原创 2018-09-06 11:30:57 · 142 阅读 · 0 评论 -
你不知道的js -- 对象的属性描述符
看代码:任何一个普通的对象里面,不仅仅只有一个自定义的值 ‘12’ ,它还有三个特性writable:可写的,enumerable:可枚举的,configurable:可配置的。 在创建普通属性的时候,属性描述符会使用默认值。我们也可以手动想修改。对象和属性的不变性1、对象常量设置对象的writable:false 和 configurable:false 可以...原创 2018-09-09 13:01:13 · 268 阅读 · 0 评论 -
你不知道的js--this的显示绑定
显示绑定:使用call()、apply()、bind()方法进行强制绑定。 1、硬绑定 2、API调用的上下文原创 2018-09-03 13:09:04 · 334 阅读 · 0 评论 -
你不知道的js -- 原型
JavaScript中所有的对象都有一个[[ prototype ]] 的内置属性,其实就是其他对象的引用。在你引用对象的属性时,会触发[[ GET ]]操作,会在当前的作用域里边寻找是否存在这个属性,如果没有就往上寻找。这个过程就是对象prototype的链式操作。prototype的对象尽头就是Object.prototype Object.prototype里边到底有什么:一...原创 2018-09-11 21:21:15 · 168 阅读 · 0 评论 -
你不知道的js -- class构造函数
ECMAScript 2015 中引入的 JavaScript 类实质上是 JavaScript 现有的基于原型的继承的语法糖。类语法不会为JavaScript引入新的面向对象的继承模型。这并不意味着JavaScript中有“类”的概念,由于类是一种设计模式。所以你可以使用一些方法近似实现累的功能。JavaScript的机制其实和类是不同的。类的继承:定义好一个子类之后,相对于父类...原创 2018-09-11 17:15:59 · 1443 阅读 · 0 评论 -
你不知道的JavaScript——do表达式和eval()
ES7 规范有一项“do 表达式”(do expression)提案,但是具体的用例和语法还没有广泛使用,所以这里只作提及,类似下面这样: var a, b;a = do { if (true) {b = 4 + 38; } };a; // 42 上例中,do { .. } 表达式执行一个代码块(包含一个或多个语句),并且返回其中最后一 个语句的结果值,然后赋值给变...原创 2018-09-23 10:06:05 · 2036 阅读 · 0 评论