js的数据类型分类:

基本数据类型:number、string、boolean、undefined
复合数据类型:object(json、array、null)、function

typeof运算符:返回当前变量的数据类型。

语法:typeof(变量名) 或 typeof 变量名

基本数据类型——存储单一的数据类型

1、number类型:数值,纯数字,表示整数和浮点数

 1)整数
 2)小数
 3)NaN:not a number,在数值运算时,得不到一个正确的数字,就是NaN

2、string类型:字符串,用引号引起来,由字符、数字、标点符号等组成的序列

3、boolean类型:布尔型,只有真true和假false这两个值

4、null和undefined

    null:表示值为空
    undefined:表示变量没有设置初始值——变量已经声明,但没有赋值
    not defined 表示变量没有定义

复合数据类型:

1、object对象类型:一组数据和功能的集合,拥有属性和方法——万物皆对象
    访问属性:对象.属性名
    使用方法:对象.方法名()
      1)json:一种轻量级的数据交互格式,基于ECMAScript的一个子集,json格式的数据需要使用大括号括起来,里面的数据:key:value——键值对存储
    2)array: 把多个数据存储在一起
2、function 函数:用来存储代码块
    function 函数名(){ 代码块 }

数据类型转换:隐式类型转换和强制类型转换

1)其他类型转成字符串型
    使用方法:toString、String
        变量.toString()------String()

 String(要转换的对象)
    console.log(num,String(num));
    console.log(String(str));
    console.log(bool,String(bool));

 var num = 10;
 console.log(num,num.toString());

2)其他类型转成数值型

    使用方法:Number()
        parseInt() 转成整型
        parseFloat() 可以保留小数

运算符:

* 1、算术运算符:+、-、*、/、%取余、++自增、--自减
*    ++或--都是在自身的基础上加1或减1

c = a++;//a--2 先赋值后自增
d = ++a;//a---3  先自增后赋值

2、赋值运算符:= 、+=、-=、*=、/=、%=

3、比较运算符:字符串的比较按照ASCII码进行比较,一般建议使用三个等号 
  比较(数值和数据类型都相等);>、<、>=、<=、==、===、!=(不等于)、!==

4、逻辑运算符:与(且,一假为假)&&,或(一真为真)||,非!(取反)

5、三目运算符:只能执行一条语句,不能出现分号
   语法:条件?语句一:语句二

js中的隐式类型转换:

数据在进行+、-、*、/运算时会自动将数据转换数据类型

1、加法:如果是文本,表示链接字符串

       如果是数字,表示简单的加法运算
      数字和字符串加结果为字符串
        数字和布尔型数据相加结果为数值
console.log(10 + 'ab');//10ab
console.log(10 + true);//11
console.log(10 + NaN);//NaN
console.log(10 + null);//10
console.log(10 + 2 + 'a' + 3);//12a3
console.log('10' + true);//10true
console.log(false + true);//1

2、减法:如果数值型数据减去一个字符串数据,会自动将字符串转成数值型

         如果数值型数据减去一个布尔型数据,会自动将布尔型转成数值型
console.log(10 - '3');//7
console.log(10 - 'a');//NaN
console.log(10 - '');//10
console.log(10 - true);//9
console.log(10 - null);//10
console.log(10 - undefined);//NaN

3、乘法:

console.log(10 * null);//0
console.log(10 * undefined);//NaN
console.log(10 * "");//0
console.log(10 * true);//10
console.log(10 * 'a');//NaN

4、除法

console.log(10/'a');//NaN
console.log(10/'');//Infinity无穷大 除数不能为0
console.log(10/null);
console.log(10/undefined);//NaN

5、取余——取模运算

console.log(10%'a');//NaN
console.log(10%'');//NaN
console.log(10%null);//NaN
console.log(10%undefined);//NaN

6、取反!

if(!1){
    alert('1')
}else{
    alert('0')
}