// Undefined
var a; // 未定义就是undefined
console.log(typeof a === 'undefined');
console.log(a === undefined);
// 如果不声明就会报错
//console.log(b)
// 如果用typeof判断数据类型只要未定义声明还是没声明都是undefined
console.log(typeof c);
var d;
console.log(typeof d);
// Null
//使用数据类型判断Null是object
var e = null;
console.log(typeof car);
// undefined值派生自null值所以相等操作符为true
console.log(null == undefined);
//Boolean
//空字符串为false
var f = '';
if (f) {
console.log(1);
} else {
console.log(2);
}
//Number类型
//浮点数值最高精度是17位小数所以0.1+0.2!==0.3
var g = 0.1;
var f = 0.2;
if (g + f === 0.3) {
console.log('0.3');
}
// NaN为number
console.log(typeof NaN);
//NaN与任何都不相等包括他自己
console.log(NaN === NaN);
console.log(NaN == NaN);
// 我们可以用isNaN来判断是否不是数值
console.log(isNaN(true)); // 可以转化为1
console.log(isNaN('t'));
console.log(isNaN(NaN));
console.log(isNaN(1)); // 1
console.log(isNaN('1')); // 1
//数值转换我们可以用parseInt,Number,parseFloat
//Number很复杂所以我们不用
console.log(Number('heelo'), Number(""), Number("001"), Number(true), Number("true"));
//如果parseInt有第二个参数表示转换为几进制
console.log(parseInt("123Blue"), parseInt(""), parseInt("22.5"), parseInt("70"), parseInt("0xf"), parseInt("0xf", 16))
//parseFloat基本一样只是会保留浮点
console.log(parseFloat("22.6"));
//我们也可以判断是否是整数
console.log(Number.isInteger(123));
//String类型
//我们现在可以使用模板字符串拼接
var g ='2'
var h = '3'
console.log(`${g}${h}`);
//我们可以已使用toString将number, bool, obj, string变为字符串
// null和undefined除外,会报错
var i;
//console.log(i.toString());
// 如果我们将toString加上参数表示向多少进制转换
var j =20;
console.log(j.toString(16));
//字符串也可以for of循环
for(let val of "dsa"){
console.log(val);
};
// ES6中我们有了includes, startWith, endsWith
//第一个参数标示查询的字符串第二个参数在includes和startWith表示从第n个位置到字符串结束的位置
//在ensdWith表示前n个字符
var k = 'hi Jorge'
console.log(k.includes('o',1));
console.log(k.startsWith('hi',0));
console.log(k.startsWith('hi',1));
console.log(k.endsWith("hi", 2));
console.log(k.endsWith("hi", 3));
//object
//参照面向对象章节
// https://www.jianshu.com/p/4bcfc67478af
// Symbol会专门有一章节
//https://www.jianshu.com/p/575618e5fb2e
typeof 判断返回操作数的类型
image.png
网友评论