数据范例
1.数据范例的概述;
在JavaScript代码中,能够示意而且操纵值的范例就叫做数据范例
数据范例能够分红可变范例和不可变范例,可变范例的值是能够修正的。相反不可变范例的值是不能够修正的。
数据范例另有原始范例(原始值)与援用范例(内置对象)
而原始乐行还分为原始范例和特别范例,援用范例分为包装范例与援用范例
原始范例是直接代表JavaScript言语完成的最底层的数据。
原始范例离别有boolean范例、number范例和string范例三种。
2.number范例;整数和浮点数,JavaScript不辨别整数和浮点数
number范例中的小数,在盘算时能够涌现偏差
1.并非一切的小数盘算都邑涌现偏差
2.小数盘算时要注意效果是不是涌现偏差
3.经由过程数字之的换算,将其转换成整数举行盘算,再把效果换算成小数。
number范例中存在一个特别的值叫NaN。
NaN示意当前的值不是一个数字值、但依旧是number范例,
它与任何值包含自身都不相称
3.string范例 – JavaScript的字符串就是由单引号或双引号包裹
在JavaScript中单引号和双引号是没有区分的——发起运用单引号
string范例 – 文本自身须要单引号或双引号时
1.假如须要的是双引号,字符串只能运用单引号
2.假如须要的是单引号,字符串只能运用共赢好
var str3 = '"wolongxueyuan"wuwenjia';
console.log(str3);
var str4 = "'wolongxueyuan'wuwenjia";
console.log(str4);
4.boolean范例
这个属性有两个值;true和false
因为JavaScript是辨别大小写的,boolean范例的teue和false全部是小写。
JavaScript也能够把其他范例的数据自动转换为boolean范例
5.typeof运算符
var num = 100;
var boo = true;
var str = 'wuwenjia';
console.log(typeof num); // number
console.log(typeof boo); // boolean
console.log(typeof str); // string
var result = typeof num;
console.log(result); // number
console.log(typeof result); // string
typeof运算符推断原始范例
语法结构——typeof变量称号。
效果——原始范例的称号(string范例)
6.instanceof运算符
var str = new String('wuwenjia');
var num = new Number(100);
var boo = new Boolean(true);
// typeof运算符只能推断原始范例
console.log(typeof str);// object
console.log(typeof num);// object
console.log(typeof boo);// object
// instanceof运算符用于推断援用范例(包装范例)
console.log(str instanceof String);// true
typeof运算符和instanceof运算符的区分
typeof运算符
1.用于推断原始范例
2.语法结构差别——typeof 变量称号
3.获得效果差别——原始范例的称号
instanceof运算符
1.用于推断援用范例(包装范例)
2.语法结构差别——变量称号 instanceof 援用范例称号
3.获得效果差别——布尔范例的值(true或false)
7.隐式3范例转换
因为JavaScript是弱范例/松懈型的,在任何状况下都能够强迫转换
var result3 = +str;
console.log(result3);// NaN
console.log(typeof result3);// number
var result4 = +boo;
console.log(result4);// true为1,false为0
console.log(typeof result4);// number
转换为number范例
string范例转换为number范例
假如文本内容是一般的文本(非数字) -> 转换后的效果为 NaN
假如文本内容是数字值 -> 转换后的效果为对应数字值
boolean范例转换为number范例
true转换为1
false转换为0
var result5 = !!str;
console.log(result5);// true
console.log(typeof result5);// boolean
var result6 = !!num;
console.log(result6);// true
console.log(typeof result6);// boolean
转换为boolean范例
string范例转换为boolean范例
空字符串(''或"")转换后的效果为false,其他状况都为true
number范例转换为boolean范例
0或NaN转换后的效果为false,其他状况都为true
undefined或null转换后的效果为false
8.显现范例转换
转换为string范例
String()函数 -> String(值)
toString()要领 -> 变量名.toString()
对象的要领 -> 将变量看成是一个对象来运用
var result1 = String(num);
console.log(typeof result1);// string
var result2 = num.toString();
console.log(typeof result2);// string
转换为number范例
Number()函数 -> Number(值)
parseInt()函数 -> parseInt(值)
转换为number范例,转换为一个整数
parseFloat()函数 -> parseFloat(值)
转换为number范例,转换为一个浮点数
var result3 = Number(boo);
console.log(typeof result3);// number
var result4 = parseInt(str1);
console.log(typeof result4);// 100
var result5 = parseFloat(str1);// 100
console.log(result5);// 100
var result6 = parseInt(str2);// 100.1
console.log(result6);// 假如当前值为小数的话,parseInt()后取整数部份 - 100
var result7 = parseFloat(str2);// 100.1
console.log(result7);// 100.1
转换为boolean范例
Boolean()函数 -> Boolean(值)
var result8 = Boolean(str);
console.log(result8);// true
隐式范例转换与显式范例转换的区分:
隐式范例转换
-长处 - 机能好
- 瑕玷 - 可读性差
显式范例转换
-长处 - 可读性高
-瑕玷 - 机能差