今天有个同学过来面试WPF,然后用我的电脑上机,项目组座位的紧张,更别说电脑了,所以我就孤独的到一边去学习了。
拿起JS高程,为什么直接看数据类型了呢?首先因为前面都是介绍性文字,直接看第三章,其次刚好看到一篇微信,上面问了一下基本数据类型有哪些?看似简单基础的题,却一下子把我问懵比了,确实搞得挺乱记不清楚了,于是书中找答案。
一,基本数据类型有5种
Undefined:
只有undefined一个值,未初始化/未定义/初始化undefined
Null:
只有null一个值(一般用来初始化对象)
undefined派生自unll,alert(null==undefined)//true
Boolean:
只有true&false两个值
类型转换,一下列出转化为false的情况:
1.false(Boolean)
2.""(String空字符串)
3.0/NaN(Number,0和非数值)
4.null(Object空对象引用)
5.undefined(Undefined)
Number:
十进制 var num=55;
八进制 var num=070 //56
var num=079(无效八进制,79) var num=08(无效八进制,超出范围)
十六进制:0x;
浮点数:
var floatNum=1.1
var floatNum=0.1
var floatNum=.1(有效,不推荐)
var floatNum=1.(小数点后无数字,解析为1)
var floatNum=10.0(整数,解析为10)
Number.MAX_VALUE--Number.MIN_VALUE
Infiniiy(正无穷)-- -Infinity(负无穷)
isFinite()--true在范围内
NaN 非数值
数值转换:
true--1 false--0
null--0
undefined--NaN
对象--valueof(); 如果NaN,调用toString()转化为字符串先,再根据规则来。
String:
字符串类型这里记住三点:
var lang="java";
lang+="script";
实际操作工程如下:先创建一个能容纳10个字符的新字符串,填充“java”和“script”,最后一步是销毁原来的两个字符串,这个过程其实效率是比较低的。不过浏览器目前已解决字符串拼接问题。
在数值调用toString()的时候,是可以给参数,表示转化的进制
var num=10;
alert(num.toString(2))表示二进制转换为字符串“1010”;
在不知道转换的值是不是null或者undefined的时候,可以调用String()函数
这个函数能够将任何类型的值转换为字符串。
二,复杂数据类型1种(引用类型)
Object:
Object对象是所有对象的基类,每个实例对象有他所有的属性和方法:
constructor:构造函数,用户创建当前对象Object();
hasOwnproperty(propertyName),检查给定的属性在当前对象实例中是否存在(不是在原型中)
isPrototypeOf(Object),检查传入的对象是否是另一个对象的原型
propertyIsEnumerable(propertyName),检查属性是否可以用for--in来枚举
toLocaleString(),返回对象字符串表示
toString(),返回对象字符串表示
valueOf(),返回对象的字符串,数值或布尔值表示
三,typeof检测数据类型
“undefined”——如果这个值未定义
“boolean”——如果这个值是布尔值
“string”——如果这个值是字符串
“number”——如果这个值是数值
“object”——如果这个值是对象或者null
“function”——如果这个值是函数
var message="something";
alert(typeof message); "string"
alert(typeof (message)); "string"
alert(typeof 95); "number"
Note:typeof是操作符而不是函数,所以()不是必须的。
“null”一个空对象引用,所以也是“object”。
var a;
var b=undefined;
//var c;
alert(a); //undefined;
alert(b); //undefined;
alert(c); //产生错误;没有声明
alert(typeof a); //undefined未初始化,默认返回
alert(typeof b); //undefined初始化为undefined,返回
alert(typeof c); //undefined未声明,返回,不能操作该变量