1.据类型与基本语法
更新: 7/5/2025 字数: 0 字 时长: 0 分钟
JS的数据类型就相对较少了,只有number,string,bollean和object,以及特殊的null和undefined。
这里需要注意的是,object类型(对象)又下分了array,function,和object(Java中的含义)
相对kotlin的is
和Java的instanceof
,js也有专属的instanceof
,用来判断值的类型
除此之外你还可以使用typeof来获取值的类型
console.log(typeof [1]) //object
console.log([] instanceof Array) //true 逆天语法
console.log(typeof null) //object
console.log(typeof function (){}) //function
值得注意的是,typeof的返回值是一个string
null与undefined
undefined和null几乎等价,但null可以转换为0,undefined则是一个无定义的值
let a
console.log(typeof a) //undifined
那么undefined和null应该如何区分呢?
其实这涉及到一个语言的设计问题,在JS中,undefined其实更像Java和Kotlin中的null,表示一个无意义的值,在JS中,他用了一种更加形象的说法“undefined—— 不明确的”,这种情况常常出现于一个值被定义了但是没有被赋值,而null则是更加类似SQL语言中的null,表示一个具体,明确的空值,即这里有一个对象,他被主动的赋予了null这个值
布尔值
在JS中这些值表示false
undefined
null
false
0
NaN
""
或''
(空字符串)
NaN
number类型中有一个特殊的值NaN
,他的含义是非数字,是在经过一些数字进行了一些非法的数学运算后得到的结果。
console.log(0/0)
console.log(Infinity/Infinity)
console.log(1/"fersar")
console.log(1/{})
可以用isNaN方法来判断一个值是否是NaN,但是需要注意的是isNaN自对number有效,因此如果你传入一个object或是其他什么类型就不生效了
所以有一种封装的写法
function myIsNan(v){
return typeof v === "number" && isNaN(v)
}
console.log(myIsNan({}))//false
string类型
JS的string类型可以使用’‘和“”两种写法,本质上没有区别,但是为了代码规范,建议一套项目中规定好string究竟使用哪种写法
string还支持这样的写法
let str="a\
b\
c"
也就是通过行末的反斜杠来进行换行
还有一点就是JS的string对UTF-16的支持不完全,32位的字符会被识别为一个字符length为2
函数
与Kotlin一样,JS中的函数为一等公民,这意味着我们的值也可以是一个函数
JS函数的声明方式主要有两种
//显示
function f(){
}
//隐式
let a=function(){
}
console与控制台
在浏览器中按下f12
,会打开控制台模式,console对象就是用于与控制台进行交互
console.log()
log用与控制台上输入一堆信息,这个功能往往用于调试
log支持使用占位符进行格式化输出
%s
字符串%d
整数%i
整数%f
浮点数%o
对象的链接%c
CSS 格式字符串
console.log("%s + %s","1","2") //1+2
console.table()
用于打印一个表