一、数据类型
-
数据类型的判断方法
* 方法一:typeof * 1、number * 2、string * 3、boolean * 4、undefined * 5、symbol * 6、object * 7、function * 方法二:Object.prototype.toString.call(data); * data:你要判断的变量
-
数据类型2大类型
* (1)简单数据类型 :存放在 *内存栈*。 * 1、number => 数值类型 * 2、string => 字符串类型 * 3、Boolean => 布尔值 -->true false * 4、null => 空(连容器都没有),指对一个空对象的引用。 * 5、undefined => 空(容器里面没有东西),指一个变量未赋值的时候, js会给这个变量一个值即为undefined。 * 6、symbol => 唯一的值 * (2)复杂数据类型 :存放在 *内存堆* 中。 * object => 对象
二、类型转换
类型转换有2种:
强制转换:就是调用js提供方法进行转换的方式。
隐式转换:就是在特定的环境中自动转换的方式。
1. 字符串转数字
- parseInt()
- parseFloat()
- Number()
parseInt和parseFloat的区别
* 1、parseInt 是转换为整数,parseFloat转换为浮点数;
* 2、parseInt 可以传入第二个参数,parseFloat没有第二个参数。
* 1、parseInt(),将字符串类型转换为一个整数;
如果一个字符串不包含有数字,则转换为NaN
parseInt(data,num) <=有两个参数
data:你需要转换的数据
num:该转换的数据是几进制的数据(可选)
* 2、parseFloat(),将字符串转换为小数(浮数点)
* 3、Number() 不管整数小数都转为数字,如果是非数字则返回NaN
* NaN(not a number):是一个非数字的数字(数值)类型。
* isNaN()判断一个数据是否是非数字--如果这个数据是 数字则返回false,
如果这个数据是 非数字则返回true。
使用实例:
num="0xa";
console.log(parseInt(num,16));//10 --- 16进制转为10进制
var num1=0.1,num2=0.2,num3;num3 = num1 + num2;
console.log((num3).toFixed(2));//输出保留2位小数的字符串
var num4 = 15;
console.log(num4.toString());//将数字转换成字符串
console.log(num4.toString(16));//f 16进制
console.log(String(num4));//转换为字符串
2. 数字转字符串
- toFixed(num) => num表示你要保留的小数点的位数
- toString() => num表示你转换成几进制(可选,默认十进制)
- String(data)
注意:
- 1、这些方法不会改变原来的值,当调用这些方法的时候是会返回一个新的值给我们。
- 2、当通过String方法来将数据转换为字符串时,会把undefined和null直接转为“undefined”和“null”, 转换其他数据类型时,其实String还是通过调用toString来转换的。
- 3、其他类型的值转换成Boolean值;Boolean() 关于其他类型的数据转换为Boolean的时候是true还是false:
- 3.1、空字符 => flase
- 3.2、非空字符 => true
- 3.3、非0数字 => true => 1
- 3.4、0 => flase => 0
- 坑点 3.5、空数组 => 另说
- 坑点 3.6、空对象 => 另说
3. null 和 undefined 的区别
- null:表示对一个空对象的引用;
当一些变量我们不需要用的时候,js有垃圾回收(GC)机制,会自动将不需要用到的变量赋值为null;所以 通常我们需要主动销毁一个对象的时候可以赋值为null。- undefined:表示未赋值的变量的默认值,函数默认值,对象的属性。
console.log(typeof null);//object
console.log(typeof undefined);//undefined
console.log(null == undefined);//true 比较值
console.log(null === undefined);//false 比较值和类型 其类型不同
数组:
var obj = {};
console.log(typeof obj.a);//undefined
4. symbol(desc) 唯一
symbol(desc):表示唯一的值
desc:对这个变量的说明,没有其他意义。
// var syb = Symbol("描述作用");
console.log(typeof syb);//Symbol
console.log(syb);//Symbol()
定义一个对象
--- 语法:var name = { }
- --- 对象获取其属性是通过点(除了symbol类型的属性)或者中括号(属性名要加上引号,symbol类型除外)来实现的。
- --- 获取对象的方法也是通过点来实现的。
console.log(typeof obj1);
var age = Symbol();
var obj1 = {
[age]:18,
name:'bgg',
skill:function(){
alert('同学,你快睡着了!');
}
}
console.log(obj1);
console.log(obj1[age]);//18
console.log(obj1.name);//bbg
console.log(obj1.skill());//skill加小括号
5. 数组 Array
可以通过arr[arr.length]这种方式来按顺序添加数组元素。
可以通过arr.length = 0 ;来清空数组
arr[10] = "我是数组的第11个元素,下标值为10";//已知个数添加元素
arr[arr.length] = "我是第12个元素";//不知个数添加元素
arr.length = 0;//清空数组
console.log(typeof arr);//object 数组是一个对象
网友评论