
JavaScript
woyasuohen6
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JavaScript异步编程
JavaScript异步编程JavaScript 是利用事件模型处理异步触发任务的单线程语言。这个概念我们应该并不陌生,但在弄清楚js引擎的实现原理之前,在处理异步问题时往往会不知所措。我刚学js时,对 JavaScript异步事件模型就迷惘了多久,迷惘导致 bug和一堆uncatched error,直到之前看到一本关于JavaScript异步编程的书,才恍然大悟。1.js执行机制是单线程的...原创 2019-02-24 19:46:06 · 476 阅读 · 0 评论 -
JavaScript跨域问题
一般情况下,前后端在传输数据时,都是在访问同一个域的资源。但有时也不可避免的要跨域发送请求,这是本文要探讨的内容。(一) 什么是跨域同源策略:通过XHR实现AJAX通信的一个主要限制,来源于跨域安全策略。默认情况下,XHR只能访问于包含它的页面位于同一个域中的资源 。(所谓同一个域就是指 协议、域名、端口 三者相同)跨域:就是指违反同源策略,向不同的域发送请求,访问资源。(二) 跨域的...原创 2019-02-24 22:55:17 · 285 阅读 · 0 评论 -
JavaScript 预编译
JavaScript引擎在执行代码时执行代码时会进行三个步骤:1、语法分析(通篇扫描全局是否有语法错误)2、预编译3、解释执行(在预编译之后一行一行执行代码)下面就是今天的重头戏:预编译预编译就是在JavaScript代码解释执行之前,变量和函数的所有声明都会首先被处理。听上去有点复杂,举个栗子:console.log( a ); //打印出undefined;va...原创 2019-03-04 22:32:43 · 132 阅读 · 0 评论 -
理解和解决JavaScript中的浮点运算bug
NUMBER类型JavaScript 只有一种数值类型:number(数字),包括“整数”和带小数的十进制数。严格意义上说,JavaScript没有整形数值,JavaScript 中的数字类型是基于 IEEE 754 标准来实现的双精度浮点数。默认情况下大部分数字都以十进制显示,小数部分最后面的 0 被省略。这就是我们在JavaScript中看到的整数。比如:var a = 1.0;...原创 2019-03-05 19:04:45 · 776 阅读 · 0 评论 -
JavaScript中继承关系,及prototype,__proto__,constructor属性关系
JavaScript中的继承继承是oo语言中最重要的概念。许多oo语言中都支持两种继承关系:接口继承和实现继承。JavaScript中只支持实现继承,而且实现继承主要是靠原型链来实现的。储备知识1、prototype属性:prototype属性只存在于函数中,这个属性指向一个函数引用,这个对象就是该函数的原型对象。每个函数都包含不同的原型对象,当函数用作构造函数时,新创建的对象就会从它构造...原创 2019-03-08 17:43:54 · 278 阅读 · 0 评论 -
JavaScript 作用域精讲
作用域作用域是根据名称查找变量的一套规则,负责确定当前执行的代码对标识符(变量,函数)的访问权限。关于词法作用域和动态作用域词法作用域(又叫静态作用域)和动态作用域是两种不同的作用域模型 JavaScript采用的是词法作用域模型词法作用域(静态作用域):词法作用域就是定义在词法阶段的作用域。换句话说,词法作用域是由你在写代码时将变量和函数写在哪里来决定的,与函数执行顺序无关,因此当词法...原创 2019-03-08 23:19:51 · 191 阅读 · 0 评论 -
JavaScript对象,数组的克隆方法
对象的浅克隆ES6 新增了 Object.assign(…),第一个参数是 target,其他传入的参数都是源,它们将按照列出的顺序依次被处理,这个方法的作用是把后面对象的属性和方法复制到target对象中并返回。这个方法只拷贝对象自身和可枚举的属性,通过继承来的不会拷贝。如果拷贝的属性中包含对象,那么只会拷贝对象的引用,如上:target.c==a.c//true这就是浅克隆的一个方法...原创 2019-03-09 01:30:05 · 227 阅读 · 0 评论 -
JavaScript中LHS引用和RHS引用的比较
JS引擎在查找变量的时候,有两种查找方式:LHS 和 RHS“L”和“R”的含义,它们分别代表在赋值操作符左侧和赋值操作符的右侧(一些参考书把进行LHS查询的值叫左值,RHS查询的值叫做右值)。RHS引用只是找到变量的值,不对其进行修改。比如:console.log( a );其中对 a 的引用是一个 RHS 引用,因为这里 a 并没有赋予任何值。相应地,需要查找并取得 a 的值...原创 2019-03-03 23:42:44 · 340 阅读 · 1 评论