文章目录
JavaScript数据类型
字面量是一个恒定的值 (变量是一个名称,字面量是一个值,都是可以直接使用)
- 字符串字面量
- 数组字面量
- 对象字面量
- 函数字面量
/*
124345454 就是一个字面量 如果重复使用的会很麻烦
变量可以用来保存字面量,而且变量的值可以任意改变
尽量不会直接使用字面量
x = 10; x变量 10字面量 给变量赋值时,等号右边的都可以认为是字面量
使用变量之前需要声明变量 var x;
可以同过变量对字面量进行描述 var age = 18;
*/
数据类型就是字面量的类型
基本数据类型
字符串(String)
var str = "hello"; // 将hello字符串赋值给str这个变量,这个str就是字符串类型
console.log(str) // str就是变量
console.log("hello") // “hello"就是字符串字面量
var只要声明一次就可以,在一个名称
数字(Number)
在js中所有的数值都是Number类型
整数和浮点数
// typeof 变量 检查一个变量的类型
var a = 123;
console.log(typeof a)
// Number.MAX_VALUE js中可以表示的最大值
console.log(Number.MAX_VALUE)
如果数字超过最大值 会出现Infinity 正无穷
console.log(typeof Infinity) // Number
// NaN 是一个特殊的数字 Not a Number
a = "a" * "b";
console.log(a); // NaN
console.log(typeof a) // Number
// Number.MIN_VALUE 0以上的最小值,表示最小的正小数
// js中整数运算基本可以保证精确
var a = 123434 + 232313;
// js进行浮点元素,可能会得到不精确的结果
// 不要用js进行精确度较高的运算
var a = 0.2 + 0.3;
布尔(Boolean)
布尔值只有 true 和 false,主要用来做逻辑判断
var bool = true;
console.log(typeof bool); // boolean
空值(Null)
Null 类型的值只有一个 null
var a = null;
console.log(a); // null 专门从来表示一个为空的对象
console.log(typeof a) // 返回object
未定义(Undefined)
Undefined类型只有一个,就是undefined
var a;
console.log(b); // 声明变量但是不赋值就会返回undefined
// 不声明就会报错
console.log(typeof b) // undefined
基本数据类型的强制转换
将一个数据类型强制转换为其他的数据类型
将其他的数据类型转换为: String Number Boolean
将其他的数据类型转换为String
var a = 123;
console.log(typeof a) // number
// 调用被转换类型的 toString()方法 不会改变原来的变量,将转换的结果返回
var b = a.toString();
console.log(typeof b); // string
a = null;
b = a.toString();
a = undefined;
b = b.toString(); // 这两个值没有toString方法 ,所以会报错
// 用String函数进行转换,将转换的数据作为参数传递给函数,返回值
// String() 函数做强制转换,对number和boolean实际上就是调用toString()方法
// null 和 undefined 就会通过函数直接转换成 "null" "undefined"
b = String(a);
console.log(a); // string
将其他的数据类型转换为Number
字符串 - > 数字:
- 如果是纯数字直接转换为数字
- 如果字符串中有非数字内容,转换为NaN
- 如果字符串是空串或者全是空格则转为 0
布尔 -> 数字
- true -> 1
- false -> 0
Null -> 数字 --》 0
Undefined ->数字 —》NaN
var a = "123";
//使用Number()函数
var b = Number(a);
// 专门针对字符串
// parseInt() 将字符串转换为一个整数,将有效的整数内容取出来,从左到右
// parseFloat() 吧一个字符串转换为一个浮点数
var a = "123px";
b = parseInt(a); // 123
var a = "123.123px";
var b = parseFloat(a); // 123.123
//如果对非string使用者量方法时,先将其转换为String,然后在进行转换
var a = true;
var b = parseInt(a); //NaN
====
a = "true"; // NaN
其他进制的数字
var a = 0x10; // 16进制
var b = 070; // 8进制
var c = 0b10; // 2进制
console.log(a) // 16 都会返回十进制
console.log(c) //有的浏览器不支持
var d = "070" //有些会当成8解析
var e = parseInt(d,10); //10代表的就是10进制
将其他的类型转换成boolean
使用Boolean()函数[只有js可以这样做]
- 数字 -> 布尔:除了 0 和 NaN其他的都说true
- 字符串 -> 布尔 :除了空串,其余的都是true
- null -> 布尔 : false
- undefined -> 布尔 : false
- 对象 -> 布尔: true
var a = 123;
var b = Boolean(a); // true
引用数据类型
对象(Object)
后续补充