js底层

typeof返回值

typeof 可以判断基本数据类型,比如 number、string、boolean、undefined、function、object和Symbol 7种类型。

对于引用数据数据类型判断不完善,比如array、null类型,typeof 都判断为object。

null和Array返回object
使用一个未定义的变量会报错,但是typeof检测一个为定义变量数据类型不会报错,返回undefined

注意:typeof只能区分值类型


基本数据类型和引用类型的区别

(1) 存储位置不一样

值类型的变量会保存在栈内存中,如果在一个函数中声明一个值类型的变量,那么这个变量当函数执行结束之 后会自 动销毁
引用类型的变量名会保存在栈内存中,但是变量值会存储在堆内存中,引用类型的变量不会自动销毁,当没有引用变量引用它时,系统的垃圾回收机制会回收它
(2) 复制方式不一样

值类型的变量直接赋值就是深复制,如 var a = 10; var b = a;那么a的值就复制给b了,b修改值不会影响a
引用类型的变量直接赋值实际上是传递引用,只是浅复制

数据类型校验


字符串拼接

使用加号运算符

连接字符串最简便的方法是使用加号运算符。

使用concat()方法

使用字符串 concat() 方法可以把多个参数添加到指定字符串的尾部。该方法的参数类型和个数没有限制,它会把所有参数都转换为字符串,然后按顺序连接到当前字符串的尾部最后返回连接后的字符串。
concat() 方法不会修改原字符串的值,与数组的 concat() 方法操作相似。

使用join()方法

在特定的操作环境中,也可以借助数组的 join() 方法来连接字符串,如 HTML 字符串输出等。


Js中的逻辑运算符

JavaScript中有三个逻辑运算符,&&与、||或、!非,虽然他们被称为逻辑运算符,但这些运算符却可以被应用于任意类型的值而不仅仅是布尔值,他们的结果也同样可以是任意类型。


深拷贝

深拷贝

递归

猜你喜欢

转载自blog.csdn.net/weixin_53687450/article/details/114867651