Js引用类型和函数进阶

摘要:值类型即基本数据类型,包括数值类型 number、布尔类型 boolean、字符串 string、null和undefined;引用类型即复合数据类型,包括对象 object、数组 array和函数 function

值类型

即基本数据类型,包括数值类型 number、布尔类型 boolean、字符串 string、null和undefined


引用类型

即复合数据类型,包括对象 object、数组 array和函数 function


浅拷贝和深拷贝

基本数据类型赋值之后,修改是独立的,不会互相影响

var a = 3
var b = a
a = 4
console.log(b) //3

浅拷贝,引用数据类型拷贝的是地址,修改会互相影响

var a = { count: 3 }
var b = a
a.count = 4
console.log(b.count) //4

深拷贝,是用内置JSON对象的strinfy()和parse()方法

var a = { count: 3 }
var temp = JSON.stringify(a)
var b = JSON.parse(temp)
a.count = 4
console.log(b.count) //3


函数

call()可接收多个参数、apply()只能接收数组、bind()绑定函数,这三个函数都会改变this的指向,让其指向参数对象


递归

函数自己调用自己,递归函数必须有一个结束条件

function fn(n) {
    if (n === 1)
        return 1
    return fn(n - 1) + n
} //计算[1, n]的累加和


预解析

在浏览器对JS代码逐条解析前,会先进行预解析:

①提出JS代码中所有的函数

②给所有的全局变量赋值为undefined(变量提升)


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_3335