随笔分类 - JavaScript随笔
摘要:深浅拷贝 浅拷贝是拷贝的地址 var obj={}; //obj=0x100; a=obj; //a=0x100; 深拷贝是拷贝每一个值 var arr=[1,2]; //arr=0x100; var b=[]; //b=0x200; b[0]=arr[0]; //b[0]=1; b[1]=arr[
阅读全文
摘要:对象的属性可以重名,后面的会覆盖前面的 var obj={a:1,b:2,a:3}; console.log(obj.a,obj.b); //3,2 对象的属性名以[]形式声明或调用时,[]中的内容会隐式转换为字符串 var obj={}; var a={}; var b={}; obj[a]=12
阅读全文
摘要:原型继承 // 原型继承 function Person(name, age) { this.name = name; this.age = age; this.eat = function () { console.log("吃货"); } } // 通过原型继承实现了方法的继承 Student.
阅读全文
摘要:内置对象JSON 1.什么是json,json作用 json是一种数据格式;现在我们大多数都是通过json数据格式进行前后端数据交互的,json本质上是一个字符串,简称json串 前端往后台传数据的时候,要传json格式的数据json串 在前端json串的格式原形就是对象或者对象的数组;所以我们要先
阅读全文
摘要:包装对象 存取字符串、数字或布尔值的属性时,创建的临时对象称为包装对象。 这三个的包装对象分别为: String('字符'); Number(数字); Boolean(布尔值); 作用:基本数据类型也可以使用.调用方法 概念:数值、字符串、布尔值分别相对应的Number、String、Boolean
阅读全文
摘要:数据类型分类 数据类型分为两大类:基本数据类型 & 引用数据类型(对象数据类型) 利用Object.prototype.toString判断数据类型 对象在创建之时,会用内部属性[[Class]]记录对象创建时的类型,而且这个内部属性无法被外部程序访问,这意味着它很安全,Object.prototy
阅读全文
摘要:堆和栈的概念 数据结构的两种,专门用来解决数据的存储和读取 内存:栈内存和堆内存(其它语言),js当中只有堆内存(堆内存又分为栈结构和堆结构,我们相当于用的栈结构和堆结构) 栈内存比较小,但是快 堆内存比较大,但是慢 拓展: 队列结构 先进先出 管状结构 栈:栈的数据结构 FILO先进后
阅读全文
摘要:变量是什么 变量: 在程序运行过程中,可以随时发生变化的量,我们称为变量; 变量定义的过程 var a = 10; 本质就是在栈内存当中开辟一块内存,起名字叫a,然后把10存储到a这块内存当中; 变量的命名规范(组成,大驼峰,小驼峰,下划线) 变量用标识符命名 是一个规则,用来规范变量名; 1、以数
阅读全文
摘要:JavaScript简介 JavaScript是跨平台、解释型、脚本语言 跨平台:就是在很多操作系统中都可以运行; 解释型语言:程序运行的时候,不会编译,拿一行解释,执行一行;(javascript python ruby) 脚本语言:可以嵌在其他编程语言中运行。 浏览器支持 IE 9+ C
阅读全文
摘要:作用域 每个函数都是一个对象,对象中有些属性可以被我们访问,比如name,有些属性仅供js引擎存取,[[Scope]]就是其中一个,由ES3定义, 上下文又叫环境 什么是执行上下文 执行上下文是ECMAScript规范中用来描述 JavaScript 代码执行的抽象概念,规定了当前代码执行的环境(当
阅读全文
摘要:原型链 显示原型与隐式原型 显示原型prototype 隐式原型[[prototype]] (__proto__已被弃用,现在用[[prototype]]代替) 原型链 当访问一个对象的某个属性时,会先在这个对象本身属性上查找,如果没有找到,则会去它的[[prototype]]隐式原型上查找,即它的
阅读全文
摘要:this绑定优先级 显式绑定 > 隐式绑定 > 默认绑定 new绑定 > 隐式绑定 > 默认绑定 this默认绑定 this默认绑定我们可以理解为函数调用时无任何调用前缀的情景,它无法应对我们后面要介绍的另外四种情况,所以称之为默认绑定, 1.默认绑定时this指向全局对象(非严格模式): func
阅读全文
摘要:语句结构分类: 顺序结构 js默认由上至下执行 分支结构 js会根据条件的判断,决定是否执行某段代码 循环结构 js会根据条件的判断,反复的执行某段代码 分支语句 单分支 if后面()当中计算出来的最终一定是布尔值; f执行过程: 1. 先计算小括号当中的值 2. 根据小括号当中的值,转化为
阅读全文
摘要:三种括号的区别 () 是为了提取匹配字符串的,表达式中有几个()就有几个相应的匹配字符串。(\s*)表示连续空格的字符串 [] 是定义匹配的字符范围。比如[a-zA-Z0-9]表示相应位置的字符要匹配英文字符和数字。[\s*] 表示空格或者*号 {}一般是用来匹配的长度。比如\s{3}表示匹配三个空
阅读全文
摘要:表达式中变量求值规则 无论结合性和优先级如何,求值顺序总是从左到右。 运算符优先级 . () [] new ?. fn() +... -... 前置递增递减 / % + - && || 三元表达式 = , 运算符比较注意: 基本包装类型会先转成包装对象再进行比较 因为引用数据类型和基本包装类型(Nu
阅读全文
摘要:函数的天生属性length 函数的length等于行参的个数 function fn(a,b,c,d,e){} console.log(fn.length) //5 函数执行过程 为函数创建一个执行环境 复制函数的 [[scopes]] 属性中的对象构建起执行环境的作用链域 创建函数活跃对象并推入执
阅读全文