JS之数据类型
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' }