一个“=”表示赋值,从右到左赋值 两个“==”表示等于 两个“**”表示乘方 数据类型: 1.基本数据类型(原始数据类型||简单值): 1.undefined:声明的变量没有赋值,函数没有返回值(如果连声明都没有,报错:变量没有定义) 查看数据类型: var number ; console.log(typeof number);
下列情况会返回 undefined: 1.访问未赋值的变量 2.任何被设置为 undefined 的变量 3.没有定义 return 表达式的函数 4.return 里没有显示的返回任何内容(显式、隐式) 5.访问不存在的对象属性 2.null:空 ECMA认为 undefined 是从 null 衍生而来的 console.log(undefined==null);->true typeof null:oobject (js 早期部署时候 bug 无法修复) console.log(typeof null);->object 对比undefined和null: 1.表示“没有”,undefined 有容器但是没有值(有一个空容器),null 连容器都没有 2.undefined:缺少值,应该有值但缺少值 null:啥都没有 3.number: 以下都是合法数字类型: 1.整数 2.浮点数 3.负数 4.NaN 5.科学计数法 6.infinity 无限大 4.boolean:布尔值(适用:判断条件) true false 任何数据类型都可以转为布尔类型 以下值会转化为 false: 1.单(’ ')、双引号(“ ”)、空字符串() 2.0、-0 3.NaN(not a number):非数 (1)NaN的数据类型是number (2)涉及到NaN的计算都是NaN (3)NaN不跟任何值相等,包括它自己 (4)isNaN()用于去判断 xx 是不是一个非数,是数字返回false, 不是数字返回true 4.false 5.null 6.undefined 强制类型转换布尔: 书写格式:Boolean(标识符/具体的值) 例: let str = “abc”; let boo = Boolean(str); console.log(boo); >true 快捷转化布尔值: let F70 = undefined; console.log(!(!F70)); 强制转换数值: let str = “abc”; let num = Number(str); console.log(num);
快捷转换数值类型方式(隐式):
let str = “123”; let num = str - 0; console.log(num ,typeof num);
强制转化字符串: let str = “123”; let num = String(str); console.log(num ,typeof num); 快捷转换字符串类型方式(隐式): let str = “123”; let num = str + “”; console.log(num ,typeof num);
5.string:字符串 字符串拼接: 单引号、引号、字符串模板 例(1): let box1 =“宋阳”,box2 = “傻逼”; let info =box2 + box1; console.log(info);
例(2): let box1 =“宋阳”,box2 = “傻逼”,age = 25,gender = “male”; console.log(box1+“今年”+age+“岁,他的性别是”+gender+“他是一个”+box2);
例(3): let box1 =“宋阳”,box2 = “4数傻逼”,age = 25,gender = “male”; console.log(${box1}今年${age}岁,他的性别是${gender},他是一个${box2})
6.symbol(ES6新增)
2.引用数据类型(合成数据类型||复杂值): object(数据、对象、函数等)
转换方法: parseInt() :转为整数型时,从字符串第一位开始解析到非数,如果第一位就为非数,返回NaN。 parseFloat():跟parseInt()解析方法一样,只解析一个小数点。 Number():整体解析,一但有非数,返回NaN。