美文网首页
JavaScript 数据类型

JavaScript 数据类型

作者: xiaolizhenzhen | 来源:发表于2019-05-07 16:32 被阅读0次

JavaScript数据类型由以下几种:String、Number、Boolean、Array、Object、Null、Undefined。

String(字符串)

String 对象用于处理文本(字符串)。

String的属性

length字符串的长度

String的方法

charAt() 返回在指定位置的字符。
charCodeAt() 返回在指定的位置的字符的 Unicode 编码。
concat() 连接字符串。
indexOf() 检索字符串。
lastIndexOf() 从后向前搜索字符串。
replace(old,new)替换与正则表达式匹配的子串。
toLowerCase() 把字符串转换为小写。
toUpperCase() 把字符串转换为大写。
toString() 返回字符串。
split(str) 把字符串分割为字符串数组。
var aa = "ab.cd.ef"; console.log(aa.split(".")); //["ab", "cd", "ef"]
slice(start,end) 提取字符串的片断,并在新的字符串中返回被提取的部分。
var aa="abcdef"; console.log(aa.slice(2,5)); // cde
substr(start,length) 从起始索引号提取字符串中指定数目的字符。
var aa="abcdef";console.log(aa.substr(2,3)); // cde
substring(start,stop) 提取字符串中两个指定的索引号之间的字符。
var aa="abcdef";console.log(aa.substring(2,5)); // cde

slice,substr和substring的区别:

slice和substring接收的是起始位置和结束位置(不包括结束位置),而substr接收的则是起始位置和所要返回的字符串长度。
substring是以两个参数中较小一个作为起始位置,较大的参数作为结束位置。
当接收的参数是负数时,
slice会将它字符串的长度与对应的负数相加,结果作为参数;
substr则仅仅是将第一个参数与字符串长度相加后的结果作为第一个参数;
substring则干脆将负参数都直接转换为0。

    // 测试代码如下:
    var test = 'hello world';
    alert(test.slice(-3));         //rld
    alert(test.substring(-3));     //hello world
    alert(test.substr(-3));        //rld
    alert(test.slice(3,-4));       //lo w
    alert(test.substring(3,-4));   //hel
    alert(test.substr(3,-4));      //空字符串

注意:IE对substr接收负值的处理有错,它会返回原始字符串。

slice,substr和substring的区别

Number

Number 对象是原始数值的包装对象。

Number的属性

MAX_VALUE 可表示的最大的数。
MIN_VALUE 可表示的最小的数。
NaN 非数字值。
NEGATIVE_INFINITY 负无穷大,溢出时返回该值。
POSITIVE_INFINITY 正无穷大,溢出时返回该值。

Number的方法

toString() 把数字转换为字符串,使用指定的基数。
toFixed(num) 把数字转换为字符串,结果的小数点后有指定位数的数字。

Boolean

Boolean 对象表示两个值:"true" 或 "false"。

Boolean的方法

toString() 把逻辑值转换为字符串,并返回结果。

Array

Array 对象用于在单个的变量中存储多个值。

Array的属性

length 设置或返回数组中元素的数目。

Array的方法

toString() 把数组转换为字符串,并返回结果。
concat() 连接两个或更多的数组,并返回结果。
var aa = ["11","22","33"]; var bb =["aa","bb"]; // ["11", "22", "33", "aa", "bb"]
join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔,默认“,”。
var aa = ["11","22","33"]; console.log(aa.join("&")) // 11&22&33
pop() 删除并返回数组的最后一个元素 。
push() 向数组的末尾添加一个或更多元素,并返回新的长度 。
reverse() 颠倒数组中元素的顺序。
sort()对数组的元素进行排序 。
slice(start,end) 从某个已有的数组返回选定的元素 。
var aa = ["11","22","33","44","55"]; console.log(aa.slice(1,3)) // [ "22", "33"]
splice(index, howmany,item1, ..., itemX) 在index的位置删除howmany个元素,然后在index的位置添加新元素item1, ..., itemX。
var aa = ["11","22","33","44","55"]; console.log(aa.splice(1,2,"aa","bb")); console.log(aa); // [ "22", "33"] // ["11", "aa", "bb", "44", "55"]
shift() 删除并返回数组的第一个元素 。
unshift() 向数组的开头添加一个或更多元素,并返回新的长度。

Null与Undefined

两者都表示 “没有”的概念,但数据类型不同。
Undefined是未定义;Null是定义了,但值为空。

undefined与null的区别

数据类型转换

数据类型检测

typeof 是一个运算符,用于检测数据的类型,比如基本数据类型null、undefined、string、number、boolean,以及引用数据类型object、Array 、function。

var a = "hello";
console.log(typeof a)   // string

var b = 2;
console.log(typeof b)   // number

var c = true;
console.log(typeof c)   // boolean

var d = ["aa","22"];
console.log(typeof d)   // object

var e = {a1:"1"}
console.log(typeof e)  // object

console.log(typeof null)  // object Null指的是对象指针为空,所以typeof结果为object
console.log(typeof undefined)   // undefined

显式类型转换
String 转 Number
// 全局方法 Number() 可以将字符串转换为数字。
Number("3.14")    // 返回 3.14
Number(" ")       // 返回 0 
Number("")        // 返回 0
Number("99 88")   // 返回 NaN

// 如果字符串中含有其它字符在转换成Number类型的时候全部为NaN
console.log(Number("123a")); // NaN
console.log(Number("123+456")); // NaN

// parseFloat() 解析一个字符串,并返回一个浮点数。
// parseInt()   解析一个字符串,并返回一个整数。
var aa = "22q";
console.log(parseInt(aa))  // 22
// parseInt,parseFloat 只能将字符串转成Number类型
console.log(parseInt("")); // NaN
console.log(parseInt(" ")); // NaN
Boolean 转 Number
// 全局方法 Number() 可将布尔值转换为数字。

Number(false)     // 返回 0
Number(true)      // 返回 1
其它类型 转 Number
console.log(Number(null)); // 0
console.log(Number(undefined)); // NaN
Number 转 String
// 方法一:String(x)         // 将变量 x 转换为字符串并返回
String(123)       // "123"将数字 123 转换为字符串并返回
String(100 + 23)  // "123"  将数字表达式转换为字符串并返回

// 方法二:x.toString()
(123).toString()   // "123"
(100 + 23).toString()  // "123"
Boolean 转 String
//全局方法 String() 可以将布尔值转换为字符串。
String(false)        // 返回 "false"
String(true)         // 返回 "true"

//Boolean 方法 toString() 也有相同的效果。
false.toString()     // 返回 "false"
true.toString()      // 返回 "true"
隐式类型转换
console.log(123+2+"1"); // 1251
console.log("1"+2+123); // 12123

console.log(null == null); // true
console.log(null === null); // true;
console.log(null == NaN); // false;
console.log(null == 0); // false;
console.log(null == false); // false;
console.log(null == " "); // false;
console.log(false == " "); // true;
console.log(false == 0); // true;

console.log(null == undefined); // true
console.log(undefined == null); // true
console.log(undefined == undefined); // true
console.log(undefined === undefined); // true
console.log(undefined == NaN); // false

console.log(NaN == NaN); // false
console.log(isNaN(NaN)); // true

凡是与NaN有关的操作,返回值都是NaN;
NaN跟谁都不相等;
isNaN()确实参数是否“不是数值”,如果是“不是数值”,则为true。

汇总
1557204221883.jpg
1557204243727.jpg

数据类型转换参考链接

相关文章

网友评论

      本文标题:JavaScript 数据类型

      本文链接:https://www.haomeiwen.com/subject/dxwroqtx.html