JavaScript闭包学习

关于JavaScript闭包原理的学习

2023-06-11 00:42:00 · 1 分钟 · 86 字

JavaScript的Promise学习

关于JavaScript Promise原理的学习

2023-06-11 00:42:00 · 2 分钟 · 366 字

JavaScript的this关键字

关于JavaScript的关键字this的原理的学习

2023-06-11 00:42:00 · 5 分钟 · 990 字

JavaScript的防抖和节流

关于JavaScript防抖节流的学习

2023-06-11 00:42:00 · 3 分钟 · 451 字

JavaScript的原型和继承

关于JavaScript继承原理的学习

2023-06-11 00:42:00 · 2 分钟 · 375 字

JavaScript运算符

关于JavaScript运算符的学习

2023-06-11 00:42:00 · 1 分钟 · 46 字

反转数组

关于 js 反转数组 ...

2020-01-15 20:31:00 · 1 分钟 · 168 字

JS的方法参数传递(按值传递)

出处:JavaScript 高级程序设计(第三版)第四章——变量、作用域和内存问题 ...

2019-02-12 16:11:50 · 1 分钟 · 144 字

浅拷贝和深拷贝

关于 js 浅拷贝和深拷贝 ...

2019-01-22 16:47:00 · 4 分钟 · 708 字

js中的“拷贝”(第一篇)——js数据类型

关于 js 数据类型 ...

2019-01-21 15:44:00 · 2 分钟 · 273 字

js异步编程

js 异步编程的4种方式 ...

2018-03-06 19:10:33 · 2 分钟 · 222 字

javascript常见问题整理

25 个最基本的 javascript 问题整理 ...

2018-02-15 15:16:31 · 4 分钟 · 671 字

关于javascript的严格模式(use strict)

探析 javascript 中的严格模式 ...

2018-02-12 20:55:06 · 2 分钟 · 278 字

JavaScript知识巩固

Refresh your JavaScript Knowledge ...

2018-02-01 21:28:22 · 11 分钟 · 2309 字

js学习笔记——一些常用的高级属性

MSDN 学习 js 高级教程 note 构造函数 使用构造函数定义类型(type) 概念 构造函数是一个为 Object 初始化一个特定类型的函数 使用 new 关键字调用构造函数 这里有一些 js 内建对象和自定义对象的例子 var myObject = new Object(); var myBirthday = new Date(1993, 11, 12); var myCar = new Car(); 构造函数包含 this 关键字,它是对新创建的空对象的引用(reference) 它通过创建属性并为他们赋初始值来初始化新对象 构造函数将返回对所创建对象的引用 function Circle(xPoint, yPoint, radius) { this.x = xPoint; this.y = yPoint; this.radius = radius; } var aCircle = new Circle(5, 11, 99); 使用自定义构造函数创建的所有对象的类型都是 object js 只有 6 中类型:object、function、string、number、boolean、undefined typeof操作符以字符串形式返回类型信息 var index = 5; var result = typeof index === "number"; var description = "abc"; var result = typeof description === "string"; true true 为声明和未声明的变量测试 undefined 数据类型...

2018-01-20 14:11:34 · 2 分钟 · 395 字

js学习笔记——变量作用域

js 变量作用域探析 背景 var o = {}; o.fun = test(); o.fun(); function test() { var fn = function () { console.log(this); }; return fn; } {fun: ƒ} 由于对这个程序的输出结果感到不解,于是决定深入了解 js 作用域究竟是什么个东西 参考:https://msdn.microsoft.com/zh-cn/library/bzt2dkta(v=vs.94).aspx 变量作用域 又要谈到 js 的两个范围:全局和局部 函数之外声明的变量就是全局变量,可在整个程序中访问和修改 函数内声明的变量是局部变量,每当执行程序时都会创建和销毁该变量(所以称临时变量),并且无法通过函数之外的任何代码访问该变量(MSDN 如是说) js 不支持块范围(通过一组大括号定义新范围),于是就只有全局(函数外)和局部(函数内),以函数划分的这两种范围 js 范围 var aNumber = 100; tweak(); function tweak() { document.write(aNumber); if (false) { var aNumber = 123; } } undefined 虽然 if(false),var aNumber = 123 不会执行,但是 js 在执行函数 tweak()时,会查找所有变量声明,var aNumber 被扫描到,js 使用初始值undefined创建变量,即使使用一个值声明变量 var aNumber = 123,但 aNumber 变量的初始值仍为undefined,仅当执行包含声明的行(var aNumber = 123)时才会使用已声明的值。...

2018-01-20 10:53:32 · 1 分钟 · 213 字

javascript-puzzlers

关于深入理解 js 的 44 道 wired 题目,经实际验证及分析的学习笔记。 ["1", "2", "3"].map(parseInt) [1, NaN, NaN] map() map passes 3 params (element, index, array) parseInt take two parameters (val, radix) typeof null "object" null instanceof object false typeof always return “object” for native non callable objects [ [3, 2, 1].reduce(Math.pow), [].reduce(Math.pow) ] reduce on an empty array without an initial value throws TypeError array.reduce() Math.pow var val = "smtg"; console.log("Value is " + (val === "smtg") ?...

2018-01-20 09:22:05 · 8 分钟 · 1650 字

js学习笔记——this关键字

js 关键字 this 用法解析 解释 函数运行时自动生成的一个内部对象,只能在函数内部使用(想起了 Python 函数的 self) function test() { this.x = 1; } 函数使用场合不同,this 的值会发生变化 但 this 总指的是调用函数的那个对象 使用场景 纯粹函数调用(全局调用) 函数作为对象方法的调用 作为构造函数调用 apply 调用 1.纯粹函数调用 全局性调用,this 代表全局对象 Global function test() { this.x = 1; alert(this.x); } test(); 1 var x = 1; function test() { alert(this.x); } test(); 1 不会报错,因为相当于 alert(Global.x) var x = 1; function test() { this.x = 0; } test(); alert(x); 0 test()之后相当于将全局变量的 x 重新赋值 0,Global....

2018-01-19 18:22:06 · 2 分钟 · 227 字

js学习笔记——局部变量和全局变量

js 的局部变量和全局变量 大纲 如何声明局部变量和全局变量 js 变量作用域基于特有的作用域链 js 没有块级作用域(ES5-) 函数中声明的变量在整个函数中都有定义 声明局部变量和全局变量 全局变量——定义在函数外的变量 局部变量——函数内部声明的变量 var a = "global"; function getLocal() { var a = "local"; console.log(a); } getLocal(); console.log(a); local global a = "global"; function getLocal() { a = "local"; console.log(a); b = "local"; console.log(b); } getLocal(); console.log(a); console.log(b); local local local local 疑问: 函数外的 a 为什么变成 local? 函数外为什么可以访问 b? 解析: 函数体内部,局部变量优先级比同名全局变量高 函数体内声明变量不使用 var,会暴露在全局上下文中,和现有变量冲突,并覆盖同名全局变量 变量作用域链 每当 js 执行时会有一个对应的执行环境被创建(每一个方法在自己独有的执行环境中执行) 执行环境中的重要部分——函数的调用对象(存储相应函数的局部变量) 函数的执行环境包含了调用对象,调用对象的属性就是函数的局部变量,每个函数在这样的执行环境中执行。函数之外的代码在另一个环境中执行,包含了全局变量。 作用域链 对象组成的列表或链...

2018-01-19 16:34:02 · 2 分钟 · 345 字

js学习笔记——闭包

JS 闭包探析。What exactly the Closure is? 计算机术语 闭包:引用了自由变量的函数。这个被引用的自由变量和这个函数一同存在,即使已经离开了创造它的环境。 变量作用域 全局 局部 函数内部可直接读取全局变量 var n1 = 9; function f1() { alert(n1); } f1(); 9 因为变量声明在 Global,全局可见,它的子当然可以访问到 函数外部无法直接读取函数内部的局部变量 function f2() { var n2 = 99; } alert(n2); n2 is not defined 因为函数是子,函数外部是父,父无法直接访问到子的局部变量 函数内部变量如果未用 var 声明则为全局变量 function f3() { n3 = 999; } f3(); alert(n3); 999 不管变量是在函数内还是函数外声明,如果没有使用 var 声明变量,就会是全局可见的 于是此时的 n3 是 Global.n3 从外部读取局部变量 ~想起了 Java 的反射~ 方法:在函数内部再定义一个函数 function f4() { var n4 = 9999; function f5() { alert(n4); } } 解析:...

2018-01-19 15:33:28 · 2 分钟 · 276 字