Javascript学习总结–数据类型

2019-03-2115:53:10WEB前端开发Comments2,394 views字数 3454阅读模式
Excerpt

一.数据类型

一.数据类型文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

基本数据类型 :
Undefined Null String Number Boolean文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

复杂数据类型:
Object文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

二、各数据类型知识点
2.1 Undefined 与Null文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

(1)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

Undefined 只有一个值:undefined
Null 只有一个值:null文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

(2)undefined 与null区别文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

undifined:表示”缺少值”,就是此处应该有一个值,但是还没有定义文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

使用var声明的变量但是未初始化,变量的值就是undefined
调用函数时,应该提供的参数没有提供,该参数等于undefined
对象没有赋值的属性,其值为undefined
函数没有返回值时,默认返回undefined
转换为数值是0文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

null:表示”没有对象”,即该处不应该有值; null值表示一个空对象指针文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

定义的变量将来用于保存对象,最好将变量初始化为null而不是其他值
对象原型链的终点: Object.getPrototypeOf(Object.prototype) //null
转换为数值是 NaN
null == undefined
结果为true
2.2 Number文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

IEEE754表示整数和浮点数值
整数:十进制,八进制(首位0),十六进制(前两位0x)
浮点数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

数值必须包含一个小数点,小数点至少有一位数字;
如果浮点数值本身表示的就是整数(如1.0),则该值会转换为整数;
ECMAScript 会将小数点后带6个零以上的浮点数值转换为以e表示法表示的数值
浮点数的最高精度是17位小数
基于IEEE754浮点数值的计算会产生舍入误差的问题,例如:
不要使用:a+b == 0.3文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

数值范围:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

Number.POSITIVE_INFINITY: Infinity 正无穷 ;
Number.NEGATIVE_INFINITY: -Infinity 负无穷
确定一个数值是不是有穷的:
isFinite(variable)
参数位于最大值与最小值之间会返回true文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

NaN:
not a number文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

在ECMAScrtipt中,任何数值除以0都返回NaN
任何涉及NaN的操作,都返回NaN
NaN与任何值都不相等,包括NaN本身: NaN == NaN // false文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

isNaN(variable)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

接受任何类型的参数,该函数确定该参数是否“不是数值”
isNaN会尝试将传入的参数值转换为数值,任何不能被转换为数值的值返回true
isNaN(NaN) // true
isNaN(10) // false(10是一个数值)
isNaN("10") // false(“10”可以被转换为数值10)
isNaN("blue") // true(不能转换为数值)
isNaN(true) // false(可以转换为数值1)
也适用于对象。在基于对象调用时,会先调用对象的valueOf() 函数,然后确定该方法返回的值是否可以转换为数值;如果不能,则调用对象的 toString() 函数,再测试返回值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

类型转换:Number() parseInt() parseFloat()文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

Number()转换规则:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

Boolean值,true 转换为 1,false 转换为 0
数字值,只是简单的传入传出
null 转换为 0;undefined 转换为 NaN
字符串:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

4.1 字符串中只包含数字(包括正负号):转换为十进制数值,注意前导0会被忽略
4.2 有效的浮点数会转化为浮点数值
4.3 有效的十六进制转换为相同大小的十进制数值
4.4 空字符串转换为 0
4.5 如果字符串包含上述格式之外的字符,转换为 NaN
4.6 不能正确转换八进制(开始的0被识别为前导0而忽略)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

parseInt()转换规则文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

对字符串进行转换时,会忽略字符串前面的空格,直到找到第一个非空格字符串。
如果第一个字符不是数字字符(可以识别各种进制的整数格式)或负号,则返回NaN;
如果第一个字符是数字字符,则会继续解析第二个字符,直到完全解析或者遇到非数字字符
如字符串是以“0x”开头,且后面跟数字字符,则作为十六进制整数,返回转换为十进制的数值;
如果是以“0”开头且后面跟数字字符,则作为八进制 (ECMAScript 3),在ECMAScript 5中,不能解析八进制,会忽略前导0
可以提供第二个参数–转换进制时使用的基数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

var num1 = parseInt("123456zzz"); // 123456
var num2 = parseInt(""); // NaN
var num3 = parseInt("-1"); // -1
var num4 = parseInt("+5"); // 5
var num5 = parseInt("07"); // 7
var num6 = parseInt("08"); // 8
var num7 = parseInt("0xA"); // 10
var num8 = parseInt("0xAZ"); // 10
var num9 = parseInt("22.5"); // 22
2.3 String
单引号或双引号表示
字符串一旦创建,其值不可变
字符字面量:
n 换行
t 制表
b 退格
r 回车
f 进纸
\ 斜杠
'单引号
" 双引号
xnn 以十六进制nn表示的一个字符(其中n为0~F)
unnn 以十六进制nnnn表示的Unicode字符(其中n为0~F)
将值转换为字符串
a. 使用加号操作符
b. 使用toString()方法—注意:null 和undefined没有这个方法
c. 使用String()—不知道是否是null 或undefined可使用这个方法
null转换为“null”
undefined转换为 “undefined”
2.4 Boolean文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

只有两个字面值:true false文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

数据类型
转换为true的值
转换为false的值
Boolean
true
false
String
任何非空字符串
空字符串
Number
任何非0数字值(包括无穷大)
0 和 NaN
Object
任何对象
null
Undefined
N/a
undefined
2.5 Object文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

Object的每个实例都具有下列属性和方法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

constructor
hasOwnProperty(propertyname)
isPrototypeOf(object)
propertyIsEnumerable(propertyname)
toLocaleString()
toString()
valueOf()文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

参考:
【1】
【2】Javascript 高级程序设计 美 Nicholas文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

三、数据类型检测方法
3.1 使用typeof检测文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

typeof 可以检测出的类型有:
undefined 、 number 、string、 boolean 、function、 object文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

var und;
typeof und ; // "undefined"
var und1 = undefined;
typeof und ; // "undefined"文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

var num = 123;
typeof num; // "number"
var str = "this is a string";
typeof str; // "string"
var bool = true;
typeof bool; // "boolean"
var nul = null;
typeof nul; // "object"
var arr = [];
typeof arr; // "object"
var arr1 = new Array();
typeof arr1; // "object"
var arr2 = [1,2,3];
typeof arr2; // "object"
var obj = {};
typeof obj; // "object"
var date = new Date();
typeof date; // "object"
var reg = /^[a-zA-Z]{5,20}$/;
typeof reg; // "object"
var error= new Error();
typeof error; // "object"
var func = function () {
console.log("这是一个函数表达式");
}
typeof func; //"function"
typeof alert; //"function"
function func1() {
console.log("this is a function");
}
typeof func1; //"function"
3.2 使用instanceof检测
var arr = [1,2,3];
arr instanceof Array;// true
arr instanceof Object;// true
var number1 = 2;
number1 instanceof Number;// false
var number2 = new Number(2);
number2 instanceof Number;//true文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/10168.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/gcs/10168.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定