JS之数据类型
undefinedundefined
JS数据类型
大伙好久不见啊,最近笔者整理 JS笔记,先持续更新中!祝大家生活愉快 _ !
typeof操作符#
JS 的数据类型;通过
typeof
来检测,得到的数据类型有:
string
number
boolean
null
undefined
object
Object 是一切数据的基础
ECMAScript 中有5种简单的数据类型,也称为基本数据类型
String
, Number
, Boolean
, null
, undefined
一种复杂数据类型,也称为引用数据类型
Object
typeof操作符实例:
console.log(typeof qq); //undefined,这个变量没有定义,但是不会报错;qq此时是变量;
console.log(typeof (222)); //number,是一个数字; typeof是操作符而不是方法,所以后面可以加()也可以不加;
console.log(typeof "222"); //string,是一个字符串
console.log(typeof false); //boolean,是一个布尔值
console.log(typeof {}); //object, 是一个对象
console.log(typeof null); //object,是一个对象,在javascript里,null是一个空指针;
console.log(typeof function(){}); //function,是一个方法,是“可调用对象”,也是属于object类型的;js里万物皆对象
注意:typeof null 的结果是 object!
从技术上来说,函数在 ECMAScript 中是对象,不是一种数据类型。但是函数拥有一些特殊属性,因此通过 typeof 操作符来区分也是有必要的!
function fn(b,c){
console.log(b);
console.log(c);
}
console.log(fn.length) // 2
typeof 的返回值是一个字符串类型的数据#
console.log(typeof typeof qq); //string
变量和数据之间的关系#
JavaScript是一种动态类型语言(dynamically typed language)。这意味着你在声明变量时可以不必指定数据类型,而数据类型会在代码执行时会根据需要自动转换。
其实,我们可以理解为,变量是没有类型的,只有值才有,变量可以随时持有任何类型的值。
这在强类型的高级语言中看起来不可思议,暗示 Java
,=!
总结#
-
Number (数字类型)
包含:正数、负数、零、小数、以及特殊的NaN;
123;
0.456;
1.2345e3;
-99;
NaN;
Infinity;注意:
NaN == NaN // false typeof NaN // number // isNaN方法检测一个值是否为有效的数字 isNaN("abn") // true isNaN("12") // false
// paresInt/parseFloat: 将其他的数据类型转换为数字类型。 parseInt("23px") // 23; // parseFloat 可以在 parseInt 的基础上转化小数
-
String
字符串数据类型,在js中用
""
或者''
包起来的都是字符串;字符串由字符组成,字符的个数就是字符串的长度,每一个字符的位置都可以通过索引来表示;var str = 'abcd'; str[0] // 'a' str.substring(0,2); // 'ab'
-
Boolean
JavaScript把
null
、undefined
、0
、NaN
和空字符串视为false
,其他值一概视为true
。true
false
-
位运算
true && true
!true
-
比较运算符
2 > 5;
7==7;
false == 0;
false === 0;NaN不能直接比较
isNaN(NaN)
-
浮点数比较
Math.abs(1/3-(1-2/3)) < 0.0000001;
-
null 和 undefined
一般用 null -
Object(对象)
对象中有几种常见的形式;
{}是对象 []是数组 /^$/是正则...
js中规定一个对象的属性名是不可重复的(这句话一定要记住,处理很多事务的时候,经常会用到对象的属性来进行操作;)
var person = { name: 'Bob', age: 20, tags: ['js','web','mobile'], city: 'Beijing' }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!