提示:基本数据类型和对象数据类型
前言
`提示:emca语法的基本类型和对象类型的学习:``
总结的来讲的话js中是八种数据类型和四种检测数据类型的方法
number string boolean null undefined symbol bigInt
对象的话:Object : 正则 对象 数组(array) 函数 日期
bigInt是任意最大整数,是为了解决number在-2的53次方到2的53次方的时候精度部准确的问题。
symbol是对象唯一的属性值,特点:唯一定义相同变量时的值是不相同的。无法被for…in Object.keys进行遍历的。
检测数据的类型:
1typeof 可以检测基本数据类型的(但是除了null因为null会被检测成对象,这是因为null的底层是00000000)
2instanceof 检测基本数据类型的(null和undefined会报错),可以检测以用数据类型的。
3constructor:既可以用来检测基本的的(null和undefined也会进行报错) ,可以用来检测引用数据类型,但是我们改写了原型就没用了
4Object.property.String.call() 这种既可以检测基本数据类型,也可以检测引用数据类型。
一、number 的转换?
把数字字符串转换成数字,字符串里面是一个非有效数字,结果是NAN
1当空字符串转Number的时候是Number(’ ') 时候是 0
2当布尔类型的值进行转换,Number(false) 是 0 ,Number(true)
3Symbol和bigInt进行转number() ,Symbol是无法进行转换NAN, bigInt是转换number(),给去掉n
4对象类型的值转number() 的隐式转换:
A先调用对象的Symbol.toprivitime(),如果没有 B我们调用对象中的 valueOf的获取基础值,如果不是基础值我们C 调用 toString()方法()进行转换成字符串,最后字符串基于Number()的方法我们转化成数字
console.log(Number('100')); 100
console.log(Number("10")); 10
console.log(Number('cheng')); NAN
console.log(Number('100px')); NAN
console.log('263'); 263
console.log(Number(false)); 0
console.log(Number(true)); 1
console.log(Number(null)); 0
console.log(Number(undefined)); NAN
二、parseInt
parseInt(string)函数 讲字符串转化成整数
特点是从左到右进行识别,遇到不到有效数字的报NAN
console.log(parseInt('100px')); 100
console.log(parseInt('px100')); NAN
console.log(parseInt('true')); NAN
三布尔类型的判断
console.log(Boolean(100)); true
console.log(Boolean(null)); false
console.log(Boolean(0)); false
console.log(Boolean(NaN)); false
console.log(Boolean(undefined)); false
console.log(Boolean("")); false
字符串string
1转义符
\n 换行
\t tab缩进
\b 空格
2字符串进行的拼接
console.log('123'+456); 123456 数值相加 字符相连
3string 的的转换 string(number)
console.log(String(123456));
四 null和undefind symbol独一无二
null是为空 undefind 的是未定义
五 对象
1定义对象的两种方式
以键值对的形式出现 name:value
第一种 var obj = {
name:'xinhang',
age:1000,
ping:99999
}
```c
第二种 var obj = new Object();
进行关于对象的增删改查
2.读入数据
代码如下(示例):
// 增加对象
obj.cook = 'rice'
console.log(obj);
obj.cook = 'fsaf';
console.log(obj.cook);
// 删除obj
delete obj.cook;
console.log(obj);
// 另一种数组展示方法[]种必须要有'',否则会被当做变量处理
console.log(obj['cook']);
通过变量我们来调用cook
var cook = 'cook';
console.log(obj[cook]);
六 数组
// 我们创建数组的两种方式
// 方式一
var arr = [1,3,5,7];
// 方式二
var array = new Array();
// 进行数组的增删改查 数据是下标进行增删改查的
// 增加
arr[4] = 99;
console.log(arr);
// 修改
arr[4] = 102;
console.log(arr[4]);
// 删除数组的几种方法
// 第一种
delete arr[0]
console.log(arr);
// 末尾删除
arr.pop(arr[4]);
// 末尾增加
arr.push(5,6);
// 开头删除
arr.shift(arr[0]);
// 开头增加
arr.unshift(7,8);
// 通过splice()这个方法来进行数组的更改 在数组下标[0] 删除一个 增加4个
arr.splice(0,1,4,44,444,4444)
// 截取数组slice
arr.slice(0,2)
// 截取后形成心得数组
</script>
七 函数
1 学习匿名函数 的一个调用
2 学习构造函数 的使用 对象是由属性和方法构成的
3 returen 实参形参
function car() {
this.age = 30,
this.name = 'wangfang',
this.sing=function(){
console.log('我的名子叫小帆帆');
}
}
var drve = new car();
drve.sing();
基础值的数据类型
1number : 整数、小数、零、负数、NaN(不是一个有效数字,但是属于数字类型)、Infinity(无穷大的值)…
2string:字符串
3blooean :true false
4null: 空
5undefined:未定义
6Symbol:创建唯一值
7bigInt:大数
+++++++++++++++++++++++++++++++++++++++++++++++
1对象我们分为四种
2标准普通对象模型 let obj = {name:obj}
3标准特殊对象模型:new Array 数组 new RegExp 正则 Math 数学函数对象
4非标注特殊对象:new Number(1) -> 原始值对应的对象数据类型值
函数对象:function()