typeof,类型转换

数组

var arr = [1,2,3,45,5,"abc",undefined];

console.log(arr[0]);                        //打印第0位
console.log(arr.length);                    //打印数组的长度

结构体

var arr = {
    属性名1 : "字符串",                    //注意用“,”分隔
    属性名2 : 数字,
    属性名3 : underfined,
    属性名4 : false,
}

console.log(arr.属性名);

编程形式的区别

  1. 面向过程:机械的想法,逻辑化思维,按步骤进行(c语言)
  2. 面向对象(java c++)

js即面向过程也面向对象

注:也可以用脚本语言与非脚本语言进行分类

typeof()

用于区别不同的数据类型
用console.log(typeof(变量名));则直接打印变量的数据类型

注:typeof函数中var a = {}; var a= []; var = null;的返回值是object
也可以用typeof 变量名表示typeof函数

类型转换

显式类型转换

  1. Number(变量); 转化为数字变量
    eg:var num = Number(‘123’); //把123转换为数字123,并返回num
    var demo = “123”; //另一种形式
    var num = Number(demo);

注:布尔值true转为数字为1,false为0;null为0,undefined不能转化,变为为NaN,字母也不能转化,变为NaN

  1. parseInt(变量);
  1. parseInt(变量);转化为数字的整形变量(去掉小数点后的数字)
    注:可以转换字符串,但布尔值true和false以及其他则转化为NaN
  2. parseInt(变量,数字);以数字为基底转换为10进制
    注::“数字”被称为radix,取值范围为2-36;且其运行方式为从数字位开始取值,取到非数字位(小数点,字母等)截止
    eg:var demo = “10”;
    var num = parseInt(demo,16);
    console.log(typeof(num) + " : " + num) //输出值为Number:16
  1. parseFloat(变量); 转化数字为浮点数
    注:当其出现非数字位时,只取非数字位前的数字(小数点除外)
  2. String(变量); 转化为字符串(任意值)
  3. Boolean(变量); 转化为布尔值(true和false)
    注:undefined、null、NaN、""(空串)、0、false 转化的布尔值为false,其余变量均为true
  4. toString();
  1. 变量名.toString();
    eg:var demo = “123”;
    var num = demo.toString();
    注:undefined与null不能用该函数转化,但可以用String函数解决
  2. 变量名.toString(数字);以10为基底转化为数字目标进制
    eg:var demo = “10”;
    var num = demo.toString(8);
    console.log(typeof(num) + " : " + num) //输出值为Number:16

隐式类型转换

  1. isNaN(变量); //判断变量是不是NaN,返回布尔值
    注:把变量用Number();函数进行转换,将转化结果与NaN进行比较
  2. “++”,“–”,“+”,“-” (最后两个是一元正负运算符)
    注:
  1. 把变量用Number();函数进行转换再进行计算;
  2. “+”两侧有一个是字符串,则会把非字符串部分链接到字符串部分上
  1. “*”,“/”,“%”
    注:把两侧用Number();进行转换,并对转换结果进行计算
  2. “&&”,“||”
    注:把两侧变量用Boolean();进行转换,并对转换结果进行运算,但返回的值却是变量的值
  3. “>=”,“<=”
    注:有数字则用Number();函数转化后进行比较 ;字符串则是用ASCII进行比较,且可以连续比较
    eg:2 > 1 > 3(返回值为false);3 > 2 > 1(返回值为true)
  4. ”,“!=”
    注:undefined == null 他们两个不等于其他值
    =”,“!==”是不发生类型转换的绝对不等于

注:NaN != NaN ; NaN !== NaN

未定义的变量如果出现在函数中,只有typeof();函数有返回值不报错,且这种情况下返回值为undefined

变量.toFixed(数字);
其用法为,将变量的小数点后“数字”位作为标准,余下部分四舍五入

var num = 123.45678;                        
var demo = num.toFixed(3);                               
var demo == 123.457;