**
JS基础数据类型
**
一个“=”表示赋值,从右到左赋值
两个“==”表示等于
两个“**”表示乘方
数据类型:
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(undefinednull);->true
typeof null:oobject (js 早期部署时候 bug 无法修复)
console.log(typeof null);->object
对比undefined和null:
1.表示“没有”,undefined 有容器但是没有值(有一个空容器),null 连容器都没有
2.undefined:缺少值,应该有值但缺少值
null:啥都没有
3.number:
以下都是合法数字类型:
1.整数
2.浮点数
(parseFloat():跟parseInt()解析方法一样,但是只解析一个小数点)
3.负数
4.NaN
5.科学计数法
6.infinity 无限大
判断是不是数字:
!isNaN(num)
numparseInt(num)
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 = “傻逼”,age = 25,gender = “male”;
console.log(${box1}今年${age}岁,他的性别是${gender},他是一个${box2}
)
6.symbol(ES6新增)
2.引用数据类型(合成数据类型||复杂值):
object(数据、对象、函数等)