1.null类型
<script>
/*
null空类型 空对象指针
*/
var nu = null;
console.log(nu);
console.log(typeof nu);//object
/*
null和undefined的区别:
null的类型为object,undefined的类型为undefined
undefined表示未定义类型,可以放任意类型的值,而null是空对象指针,后期只存放对象类型
*/
</script>
2.字符串类型
<script>
// 在js中不区分单双引号,单双引号均不解析变量
// 在js中字符串一般使用单引号和标签的双引号区分
var str = '马伊琍终于离婚了';
console.log(str);
console.log(typeof str);
var str1 = "五年前的且行且珍惜";
console.log(str1);
console.log(typeof str1);
// var str2 = "<p style="color:red;font-size:30px;">结婚为了快乐,离婚也为了快乐</p>";//报错
// var str2 = '<p style='color:red;font-size:30px;'>结婚为了快乐,离婚也为了快乐</p>';//报错
// console.log(str2);
// 建议单双引号嵌套使用
// var str3 = '<p style="color:red;font-size:30px;">结婚为了快乐,离婚也为了快乐</p>';
// 转义字符 \
var str3 = "<p style=\"color:red;font-size:30px;\">结婚为了快乐,离婚也为了快乐</p>";
console.log(str3);
// 字符串的拼接 +
var name = '耿育淼';
var str4 = name+'要请我们吃冰西瓜';
console.log(str4);
</script>
3.数值类型
<script>
/*
数值类型:number
整型:占4个字节
取值范围:-2的53次方,到正的2的53次方
浮点型:占8个字节
单精度
双精度
注意:
当整型超过其取值范围会自动转换为浮点型
浮点型所占的空间是整型的两倍,当浮点型小数点后没有实际的值,则自动转换为整型
*/
var num = 10;//10
var num = 11.000;//11
console.log(num);
console.log(typeof num);
var num = 9.9;
console.log(num);
console.log(typeof num);
// 进制
var num = 026;//22 0代表八进制
var num = 019;//19 0后面的数字超过进制范围,代表十进制
var num = 0xf;//15 0x代表十六进制(重点)
console.log(num);
console.log(typeof num);
// 科学计数法
var num = 3.14e3;//3140 e代表10 10的3次方
var num = 10e-2;//0.1
console.log(num);
console.log(typeof num);
//
var num1 = 0;
var num2 = 10;
var res = num1/num2;
console.log(res);//0
console.log(typeof res);
// 无穷 Infinity
var num1 = 10;
var num2 = 0;
var res = num1/num2;
console.log(res);//Infinity无穷
console.log(typeof res);
// 永远不要使用小数运算后的结果进行判断
console.log(0.1+0.2);
console.log(0.2+0.3);
if(0.1+0.2==0.3){
console.log('相等');
}else{
console.log('不相等');
}
if(1+2==3){
console.log('相等');
}else{
console.log('不相等');
}
</script>
4.NaN
<script>
/*
NaN not a number不是一个数的数值类型
*/
// NaN如何产生:想得到一个一个数,但是却得不到
var num1 = 10;
var num2 = '玉兰';
var res = num1+num2;//10玉兰 +此时作为拼接符
var res = num1-num2;
var res = num1*num2;
var res = num1/num2;
console.log(res);
console.log(typeof res);
// 只要NaN参与运算,结果都是NaN
var num1 = NaN;
var result = num1 + 10;
var result = num1 - 10;
var result = num1 * 10;
var result = num1 / 10;
console.log(result)
console.log(typeof result)
// NaN是一个连自己都不认识自己的数值类型
// 判断值是否相等
console.log(NaN == NaN);//false
// 判断值和类型是否相等
console.log(NaN === NaN);//false
</script>
5.对象
<script>
/*
object对象
对象的定义方式:
1、通过对象原型定义
2、通过json方式定义
对象:
属性-----------------变量
方法-----------------函数
*/
// 通过对象原型定义 constructor构造函数 obj为实例化对象
var obj = new Object();
console.log(obj);
console.log(typeof obj);
// 添加属性
obj.name = '大黄';
obj.age = 18;
console.log(obj);
// 访问对象的属性
console.log(obj.name);
// 添加方法
obj.say = function(){
console.log('汪汪汪~~~');
}
// 访问对象的方法
obj.say();
// 2 通过json方式定义
var person = {
name:'李林',
sex:'女',
play:function(){
console.log('我会唱歌,我会跳舞');
}
};
console.log(person);
console.log(typeof person);//object
person.sing = function(){
console.log('我爸姓李,我妈姓林,所以我叫李林');
}
console.log(person);
</script>
6.类型转换-自动转换
<script>
/*
类型转换:
1、自动转换
2、强制转换
*/
// 自动转换为数值类型
var num = 10.00;//10
var num = 023;//19
var num = 0xa;//10
var num = 'a'*10;//NaN
var num = 10 - '10';//纯数字的字符串,运算时会自动转换为数字参与运算
var num = 10*'10';
var num = true+5;//true会自动转换为1
var num = false+5;//false会自动转换为0
console.log(num);
// 自动转换为字符串
var res = 10 + '10';//1010
console.log(res);
// 自动转化为boolean类型
var flag = 0;//false
var flag = 1;//true
var flag = -1;//true
var flag = '耳朵大,没啥用';//true
var flag = ' ';//true
var flag = '';//false
var flag = undefined;//flase
var flag = null;//false
if(flag){
console.log(true);
}else{
console.log(false);
}
</script>
7.类型转换-强制转换为整性
<script>
/*
强制转为Number类型
***parseInt()强制转换为整型
解析字符串,取第一个字符之前的数据进行转换
解析进制(解析十六进制)
转换为整型时,只取整数位
parseFloat()强制转换为浮点型
解析字符串,强制转换为浮点型
若多个小数点,只取第一个小数点后面的值
不解析进制
Number()强制转换为Number()
*/
// parseInt(需要转换的值)强制转换为整型
var num = 6.2;//6
var num = 6.6;//6 强制转换时只取整数位
var num = '100abca';//100 取第一个字符之前的数值进行转换
var num = '1a2b3c';//1
var num = '9.9c';//9
var num = '学习不刻苦,菊花要被堵';//NaN
var num = '0xa';//10
var num = '0xA';//10 十六进制不区分大小写
var num = '026';//26 默认取值为0,代表十进制
console.log(parseInt(num));
// 第二个参数代表基数 取值2~36 默认取值为0,代表十进制
var num = '23';//15
console.log(parseInt(num,6));
// parseFloat()强制转换为浮点型
var num = '10';//10
var num = '13.14.520';//13.14
var num = '123木头人';//123
var num = '66.66木头人';//66.66
var num = '0xa';//0 不解析进制
console.log(parseFloat(num))
// 常见用法
var width = '200px';
var padding = '20px';
var res = parseInt(width) + 2 * parseInt(padding) + 'px';
console.log(res);
</script>
8.类型转换-强制转换为number
<script>
/*
Number()
只解析纯数字的字符串
解析进制
*/
var num = '6.33';//6.33
var num = '123';//123
var num = '123木头人';//NaN
var num = '0xa';//10
console.log(Number(num));
</script>
9.类型转换-强制转换为string
<script>
/*
String()和toString()强制转换为字符串
*/
var str = 10;//10
var str = true;//true
var str = undefined;//undefined
var str = null;
var res = String(str);
console.log(res);
console.log(typeof res);
var str = 10;//10
var str = true;//true
// var str = undefined;//报错
// var str = null;//报错
var res = str.toString();
console.log(res)
console.log(typeof res)
</script>
10.类型转换-强制转换为boolean
<script>
// Boolean()
var num = 1;
var num = 0;
var num = '123';
var num = ' ';
var num = undefined;
var num = null;
console.log(Boolean(num));
</script>
网友评论