js基础知识
溅兔
这个作者很懒,什么都没留下…
展开
-
javascript/js深拷贝和浅拷贝是什么?
首先我们来理解理解深拷贝和浅拷贝,看看他们的区别 **深拷贝:**另外创建一个一模一样的对象,新对象和原对象不共享内存,修改新对象不会改变原对象。 **浅拷贝:**会对对象逐个成员依次拷贝,只复制了内存地址,并没有复制对象本身,新旧对象还是共享一个内存地址。 不知道上面这个解释大家是否能听看懂吗?没看懂没关系,我们在看看下面的示例。 【深拷贝】 //深拷贝-方法1 var a1=[1,2,3,4]; var a2=a1.concat(); a2[1]=100; console.log(a1); //[1,2原创 2021-06-08 08:59:37 · 161 阅读 · 1 评论 -
js作用域(全局作用域、函数作用域、块级作用域),让你快速了解js作用域!
作用域分三个:(全局作用域、函数作用域、块级作用域) 一:全局作用域 全局作用域是设置在最顶级域window里面的,当前页面任何地方都可获取到的。 var a='hello world'; console.log(a); //hello world 或者:console.log(window.a); //hello world (其实全局变量就是设置到了window变量内了,所以在window里面肯定能找到设置的全局变量) 一:函数作用域 var关键字创建在函数内部的变量只能在函数这个局部内被获取,函数外原创 2020-07-24 16:22:48 · 580 阅读 · 0 评论 -
js/javascript闭包+带你快速掌握什么是闭包!
1.闭包的理解 (1)能够读取其他函数内部变量的函数就是“闭包” (2)也可以简单理解成:定义在一个函数内部的函数就是“闭包” (3)本质上闭包就是将函数内部和函数外部连接起来的桥梁 function a(){ var c=10; var b=function(){ console.log(c); } return b(); //b就是一个闭包,他能读取到a函数内部的的变量 } a(); //10 2.闭包的用途 通过闭包我们可以做很多事情,比如模拟面向对象的代码风格,更优雅、更简洁的表达出代原创 2020-07-15 09:56:47 · 151 阅读 · 0 评论 -
javascript/js变量提升和函数提升
javascript引擎的工作模式是“先解析后执行”,先解析申明的变量/函数,然后再一行一行执行代码。这造成的结果,就是所有变量/函数的声明语句,都会被提升到代码的头部,这就叫做变量/函数提升(hoisting) javascript执行分两个阶段:解析阶段(解析变量申明、解析函数申明、解析形参)、执行阶段 变量提升: 示例1: var a; console.log(a);//undefined a=2; 解析阶段:解析找到var关键字定义的变量,创建一个变量a的内存,给未赋值的变量一个默认值undefi原创 2020-07-14 12:49:28 · 245 阅读 · 2 评论 -
js/javascript数据类型,基础数据类型(值类型)、复杂数据类型(引用类型)
javascript数据类型分两种: 1.基本数据类型(值类型) 2.复杂数据类型(引用类型) 3.值类型和引用类型的区别 4.检测数据类型的方法 一、基本数据类型(值类型) 1.字符串类型/String 【创建方法】 var str=’abc’; 2.数字类型/Number 【创建方法】 var num=123; 3.布尔类型/Boolean 【创建方法】 var bool01=true; va...原创 2019-02-15 18:50:08 · 1685 阅读 · 0 评论