js 数据类型 弱类型的
两大类
基本数据类型 number string boolean null undefined
引用数据类型(复合,复杂) Object (array object function)
number
var x = 1;
// typeof 用来检测数据类型
// typeof x typeof(x) ()按照实际的需求去省略
console.log(typeof x)
console.log(typeof 0.123)
//八进制的 以0开头 里面没有出现 8
var a = 0110;
console.log(a)
console.log(typeof a)
//十六进制 以0x开头 0-9 a-f
var b = 0xa
console.log(b)
console.log(typeof b)
var c = 1+2
console.log(typeof c)
console.log(typeof(2+3))
// 0.1+0.2 = 0.3
console.log(0.11+0.2)// js个别的小数运算会出现精度问题
console.log(0.1+0.2 == 0.3) //禁止使用小数运算去判断 真假
string
//string 写在引号里面的 都是string
var str = ‘’; //空字符串
console.log(typeof str) ;
var x = “天生我材必有用” ;
var x = ‘1234567890qwetyuiopasdgjklzxcvbnm,.’;
// var x = 3;
console.log(typeof x) ;
//获取到字符串的长度 字符串.length
// 相同的变量名称 后面的会覆盖前面的
console.log(x.length)
//charAt() 索引值 从0开始的 必须是整数 0~
console.log(x.charAt(3))
//boolean 布尔值 true false 一般用在条件判断
var x = true
console.log(typeof x)
if(20>10){
console.log(‘20>10没问题’)
}
var y = false
// null 空
var no=null
console.log(typeof no) //空 typeof检测为 object
//undefined 未定义的
var a;
console.log(a)
//一般情况下 如果你的代码里出现 null 或者是 undefined 说明你的代码是有问题的
console.log(b) // undefined
var b = ‘asd’;
console.log(b) // asd
//object
var demo = document.getElementById(‘demo’)
// alert(demo)
console.log(typeof demo) //object
console.log(typeof document) //object
console.log(typeof window) // object
// 声明一个对象
var obj = {} //空对象
console.log(typeof obj)
//对象里的值一般都是由 键值对的形式 key:value
var obj1 = {
“name”:“ujiuye”,
“age”:12,
“flag”:true
}
console.log(typeof obj1)
// 获取对象里的属性 对应的属性值
console.log(obj1.name)
obj1.name = “优就业”;
console.log(obj1);
obj1.sex =‘男’;
console.log(obj1);
// array 数组
// var arr = [];
console.log(typeof arr) //object
var arr1 = new Array(); // 通过new关键字
console.log(arr1)
var arr = [1,“数组”,true,{“name”:“ujiuye”},[]]; //数组里的项 可以是任意的数据类型
console.log(arr)
console.log(arr.length);
console.log(arr[2])
arr[2]=false
console.log(arr)
arr[10]=‘我是下标为10的项’;// 数组里面允许出现下标为空的值
console.log(arr)
arr.push(‘我是后来的’);// 在数组的后面添加一项
console.log(arr)
//function
// function(){} 匿名函数
// function fun(){} 命名函数
function fun(){
console.log(typeof fun)
}
// 调用函数 调用几次 执行几次
fun()
fun()
// 数据类型之间的转换
Number() 返回的是一个新的值 不会改变原有的值
// 语法: Number()
console.log(Number(’’)); // 0
console.log(Number(‘123’)); //123
console.log(Number(‘234aqsd’)); // NaN not a number
console.log(typeof NaN);
console.log(Number(‘0.12.3’)); // NaN
console.log(Number(’.0123’)); //rgba(0,0,0,.9)
console.log(Number(‘e123’));// NaN
// 字符串转数值 空的转成0 纯数字的转成对应的数值 可以识别一个小数点而且必须是纯数字的 其余全部转成NaN
// 字符串转数值 空的转成0 纯数字的转成对应的数值 可以识别一个小数点而且必须是纯数字的 其余全部转成NaN
//boolean
console.log(Number(true)); //1
console.log(Number(false)); //0
//null
console.log(Number(null)); // 0
//undefined
console.log(Number(undefined)); // NaN
console.log(NaN == NaN); // false
console.log(1 == ‘1’); // true 隐式类型转换
console.log(1 == true); // true
console.log(null == ‘’); // false
console.log(’’ == 0); // true
console.log(0 == null); //false 留着
//转数值类型的方法 浮点型的 整形的
// parseInt() 识别字符串里以数字开头的连续性的值 转成对应的数值
// parseFloat() 识别字符串里以数字开头的连续性的值 可以识别一个小数点
console.log(parseInt(‘123’));//123
console.log(parseInt(‘123.234’)) ; //123
console.log(parseInt(‘123asd’)) ; //123
console.log(parseInt(‘0123asd’)) ; // 123
console.log(parseInt(‘0.123asd’)) ; // 0
console.log(parseFloat(‘123’)) ; //123
console.log(parseFloat(‘0.as123’)); //0
console.log(parseFloat(‘a0.as123’)); // NaN
// isNaN 是不是一个数值 数字返回 false
console.log(isNaN(‘123q’)) //
// string toString()
console.log(String(123)); //‘123’
console.log(typeof String(123)); //string
console.log(String(true)); //‘true’ ‘false’
console.log(String(null)); //‘null’
console.log(String(undefined)); // undefined
var arr = [1,‘a’,[‘asd’]];
var str = String(arr)
console.log(typeof str); // ‘1,a,asd’
// var obj = {“name”:“ujiuye123”}
// var obj = {“name”:“ujiuye123”,“age”:“12”}
var obj = {};
var str1 = String(obj) // [object object]
console.log(str1)
console.log(str1.length)
console.log(typeof str1)
// 变量.toString() number类型 2~36 进制
var x = 234;
console.log(x.toString());
var y = 13;
console.log(y.toString()); // ‘2’
console.log(y.toString(16)); //