- 博客(10)
- 收藏
- 关注
原创 JavaScript 作用域(Scope)详解
JavaScript 作用域(Scope)详解 先对需要用到的名词解释一下,再通过例子深入理解 一、什么是作用域(Scope) [[scope]]:每个javascript函数都是一个对象,对象中有些属性我们可以访问,但有些不可以,这些属性仅供javascript引擎存取,[[scope]]就是其中一个。[[scope]]指的就是我们所说的作用域,其中存储了运行期上下文的集合。即作用域决定了代码区块中变量和其他资源的可见性。 二、变量的作用域类型 1.全局作用域:全局作用域贯穿整个javascript文档,
2020-07-04 11:44:55 2110
原创 闭包的认识
闭包 一、什么是闭包 闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就是在一个函数内 创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域,将函数 内部的变量和方法传递到外部。 二、闭包的原理 借助函数的立即执行、参数以及函数的return返回值,多创建了一层作用域。从而实现外部函数 持续性被引用而不能释放内存空间,将值存储下来。 三、闭包的作用 闭包就是将函数内部和函数外部连接起来的一座桥梁。使得外部函数可以读取内部函数的变量, 这些变量的值始终保持在内存中
2020-07-04 11:41:52 170
原创 原型链
1.原型 函数构建出来的时候,系统会默认地帮构造函数创建并关联一个神秘的对象,这个对象就是原型。原型默认是一个空的对象,该对象中的所有成员可以被该构造函数实例化出来的对象访问。 原型的作用:原型中的属性和方法可以被该构造函数创建出来的对象使用 function Person(name,age) { this.name = name; this.age = age; this.sayHello = function() { console.log("Hey,man!"); }; } var p =
2020-07-03 20:04:02 140
原创 深拷贝的实现方式
方案一:利用现代浏览器支持的JSON对象做一次中转,实现深度克隆。(IE6、IE7不支持原生JSON对象,可载入json2.js补丁来达到兼容)感谢rekey提供此方案。JSON.stringify()与JSON.parse()详细信息请点击这里 var deepClone = function (obj) { var _tmp,result; _tmp = JSON.stringify(obj); result = JSON.parse(_tmp); return resu
2020-07-02 21:06:14 325
原创 this指向问题(易懂)
1.一般函数中this指向window 2.对象中函数的this指向,它的 this 是调用该函数的对象 3.构造函数里的this,指向创建出来的实例 4.事件处理函数中,它的this指向触发事件的元素 #5.箭头函数没有自己的this,它的this指向上下文中的this(即所处环境的this) 改变this指向 function fn(x, y) { console.log('coming',this); console.log(x + y); } let ob
2020-07-02 20:57:53 341
原创 闭包
什么是闭包?闭包的优缺点? 闭包(closure)是javascript的一大难点,也是它的特色。很多高级应用都要依靠闭包来实现。 1、变量作用域 要理解闭包,首先要理解javascript的特殊的变量作用域。 变量的作用域无非就两种:全局变量和局部变量。 javascript语言的特别之处就在于:函数内部可以直接读取全局变量,但是在函数外部无法读取函数内部的局部变量。 注意点:在函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明的是一个全局变量! 2、如何从外部读取函数内部的局部变量
2020-06-29 21:57:14 100
原创 Js 的数据类型
数据类型:基础概念 请注意:JS的数据类型有8种。 在ES5的时候,我们认知的数据类型确实是 6种:Number、String、Boolean、undefined、object、Null。 ES6 中新增了一种 Symbol 。这种类型的对象永不相等,即始创建的时候传入相同的值,可以解决属性名冲突的问题,做为标记。 谷歌67版本中还出现了一种 bigInt。是指安全存储、操作大整数。(但是很多人不把这个做为一个类型)。 JS数据类型:JS 的数据类型有几种? 8种。Number、String、Boolea
2020-06-19 18:50:18 121
原创 运算符
Web-JavaScript-JavaScript 运算符 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>javascript 运算符</title> </head> <body> <!--javascriptyu运算符--> <p>惦记按钮计算</p> <
2020-06-17 19:54:26 86
转载 rem的用法
rem的用法 rem 相对于根元素字体大小的单位,它是一个相对单位。 通常可以有两种方法,第一种是结合媒体查询来做。 第二种是 js 方法。 一:媒体查询: 使用媒体查询,来控制不同屏幕下的html的字体大小即可。 假如一个需求:有个设计图750,在这个图纸上有个div,量出来是 :200px * 200px; 首先我们可以考虑将750的设计稿分为15份(当然那也可以分成10份,这个随意,我为了好计算。), 即要把屏幕分成 :750px = 15rem; 那么就是:750的屏幕 :1rem = 50px ;
2020-06-09 16:02:40 419
转载 IphoneX 适配问题
iPhoneX 适配笔记 iPhone X 的到来,惊艳的是果粉,苦逼的是程序猿。今天升级到Xcode9.0,运行项目,所谓的全屏 iPhone X,but 页面好像也没有全屏,于是根据之前的适配经验,总算初步解决了这个问题,记录如下,以备后需。 问题:App 未全屏显示 解决办法 LaunchImage 中添加一个和 iPhone X 相关的启动图片 图片尺寸:1125 * 2436 Contents.json 中代码如下 { "extent" : "full-screen", "idio
2020-06-08 19:34:29 647
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人