js的值引用和地址引用

JavaScript012

js的值引用和地址引用,第1张

number 类型

        var a = 1

        var b = a

        b++

        console.log(a)  //1

        console.log(b)  //2

字符串类型

        var q = 'copy'

        var s = q

        s += '1'

        console.log(q)//copy

        console.log(s)//copy1

布尔类型

        var e = false

        var w = e

        w = true

        console.log(e)  //false

        console.log(w)  //true

数组

        splice  截取  会改变原数组

        //地址的引用  浅拷贝

        var array = [1,2,3,4,5]

        var newArray = array

        var thArray = newArray.splice(1,3)

        console.log(thArray)  //[2,3,4]

        console.log(newArray)  //[1,5]

        console.log(array)    //[1,5]

        //循环到原始类型进行深拷贝

        var  arr = ['a','b','c','d','e']

        var  newArr = []

        for(var i=0i<arr.lengthi++){

            newArr.push(arr[i])

        }

        var thArr = newArr.splice(1,3)

            console.log(thArr)  //["b", "c", "d"]

            console.log(newArr)  //["a", "e"]

            console.log(arr)  //["a", "b", "c", "d", "e"]

         对象

        //地址的引用  浅拷贝

        var obj = {name:'abc',id:'1'}

        var newObj = obj

        newObj.name='abcde'

        console.log(obj)  //{name:'abcde',id:'1'}

        console.log(obj)  //{name:'abcde',id:'1'}

        //循环到原始类型进行深拷贝

        var object = {name:'321',id:'1'}

        var newObject= {}

        for (var j in object){

            newObject[j]=object[j]

        }

        newObject.name='abcde'

        console.log(newObject)  //{name:'abcde',id:'1'}

        console.log(object)      //{name:'321',id:'1'}

数字   字符串   布尔类型   为原始类型,是值引用

数组   对象类型 为地址引用

值引用为深拷贝

地址引用循环到原始类型可进行深拷贝

        var nameArray = ['张三','李四']

        var descArray = ['张三是男生','李四也是男生']

        var allArray = []

        var tableObj={}

        for(let i=0i<nameArray.lengthi++){

            tableObj.name=nameArray[i]

            tableObj.desc=descArray[i]

            allArray.push(tableObj)

        }

        console.log(allArray)          //{name: "李四", desc: "李四也是男生"}

                                        //{name: "李四", desc: "李四也是男生"}

       var nameArray = ['张三','李四']

        var descArray = ['张三是男生','李四也是男生']

        var allArray = []

        for(let i=0i<nameArray.lengthi++){

            var tableObj={}

            tableObj.name=nameArray[i]

            tableObj.desc=descArray[i]

            allArray.push(tableObj)

        }

        console.log(allArray)          //{name: "张三", desc: "张三是男生"}

                                        //{name: "李四", desc: "李四也是男生"}

新建Javascript 类型的页面,在里面写入相应js 内容

保存文件在相应的根目录的js 文件夹下 如命名为lead.js

在页面中写<script type="text/javascript" src="js/lead.js"></script>即可完成导入

在JS的学习与工作中,搞清楚相关数据类型是基础中的基础,平均一百家公司面试前端工程师的时候九十九家都会问,请你简单举例一下JS的数据类型,于是菜狗我就将对此进行一些自己粗浅的总结为自己留作笔记同时为各位想要学习的同学提供小小的帮助。

首先,我们要明白,在JS中,数据类型分为一下两种:

基础数据类型分为七种

①Number 数字型 (包含所有的整数,浮点数,负数等)

②String 字符串型 (包含任意文本)

③boolean 布尔型 (仅有两种类型,ture与false)

④Undefined 未定义 (仅有一种,undefined)

⑤Null 空/不存在 (仅有一种,null)

⑥Symbol (实现唯一标识)

对此进行简单的举例

⑦BigInt(任意精度整数)(将与ES10中出现)

对此数据类型存在进行简单解释

BigInt 通过数字加n的方法来表示,支持二进制,八进制,十六进制

以下写法结果均为转换为字符串后得而结果,BigInt类型转换字符串后不会再带着n

Ⅰ.通常写法

Ⅱ .十六进制

Ⅲ.八进制(注意区分数字0与字母o)

Ⅳ. 二进制

引用数据类型共有三种

①Array类型 (数组型)

②Object类型 (对象型)

③Function类型 (函数/方法)

以上就是十种JS中的数据类型,如有错误,欢迎指正。

如果本文能帮到你,那么菜狗很开心,大家一起 加油!