Skip to content

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来获取值的类型

js
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则是一个无定义的值

js
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,他的含义是非数字,是在经过一些数字进行了一些非法的数学运算后得到的结果。

js
console.log(0/0)  
console.log(Infinity/Infinity)  
console.log(1/"fersar")  
console.log(1/{})

可以用isNaN方法来判断一个值是否是NaN,但是需要注意的是isNaN自对number有效,因此如果你传入一个object或是其他什么类型就不生效了

所以有一种封装的写法

js
function myIsNan(v){
	return typeof v === "number" && isNaN(v)
}

console.log(myIsNan({}))//false

string类型

JS的string类型可以使用’‘和“”两种写法,本质上没有区别,但是为了代码规范,建议一套项目中规定好string究竟使用哪种写法

string还支持这样的写法

js
let str="a\
b\
c"

也就是通过行末的反斜杠来进行换行

还有一点就是JS的string对UTF-16的支持不完全,32位的字符会被识别为一个字符length为2

函数

与Kotlin一样,JS中的函数为一等公民,这意味着我们的值也可以是一个函数

JS函数的声明方式主要有两种

js
//显示
function f(){

}

//隐式
let a=function(){

}

console与控制台

在浏览器中按下f12,会打开控制台模式,console对象就是用于与控制台进行交互

console.log()

log用与控制台上输入一堆信息,这个功能往往用于调试

log支持使用占位符进行格式化输出

  • %s 字符串
  • %d 整数
  • %i 整数
  • %f 浮点数
  • %o 对象的链接
  • %c CSS 格式字符串
js
console.log("%s + %s","1","2") //1+2

console.table()

用于打印一个表

本站访客数 人次      本站总访问量