重新开始javascript(二) -- 数据类型

javascript的变量一些问题

关于定义及undefined和 is not defined

各种出现的情况,参考代码。
定义为赋值,直接未定义的情况。

<script type="text/javascript">
    a=40;
    console.log(a);//可以输出a=40,但不推荐,最好用var a = 40;
    console.log(b);// b is not defiend
    var c;
    console.log(c);// a undefiend
</script>

两个变量值的交换

<script type="text/javascript">
    //不使用第三个变量,交换两个变量的值
    var a = 50;
    var b = 40;
    a = a + b;//a=90;b=40;
    b = a - b;//a=90;b=50;
    a = a - b;//a=40;b=50;
</script>

js是弱类型语言

  • 会根据值去推断是什么类型。
    • js提供了 typeof name方法来判断是什么类型
  • 对于boolean数据里的true和false,用1和0参与运算。
    • 数字 + 字符串:数字转换为字符串
    • 数字 + 布尔值:true转换为1,false转换为0
    • 字符串 + 布尔值:布尔值转换为字符串true或false
    • 布尔值 + 布尔值:布尔值转换为数值1或0
  • 任何值都可以转换boolean

    • 空字符串,0和NaN,null,undefined 是false,其他都是true。
  • 数值问题

    • Infintiy和-Infintiy:无穷大和无穷小
    • NaN :非数值(Not a Number)
      • NaN和任何值都不相等,包括NaN
    • isNaN() 任何不能转换成数值的都会返回true
      • isNaN(“abc”);//true

    数据类型转换

    1. toString(); null和undefined没有toString()方法,可用String();
    2. String();//String(null);
    3. Number(); //对于字符串中有字符返回NaN,代码如下
    4. parseInt()和parseFloat(); //对于字符串中第一个是字符返回NaN,否则返回字符前的数字,代码如下
parseInt("12.3abc");//返回12
parseInt("abc12.3");//返回NaN
parseInt("");//返回NaN
Number("");//返回0
Number("1223a");//返回NaN
//注意
//parseInt("值","进制");

对于运算符

  1. 对除0,返回Infinity;对0取模的时候返回NaN
  2. ++a; // a = a+1;表达式返回a的值
  3. a++;//表达式先返回a的值,在计算。

对于js数组

  • 有序列表
  • 任意类型
  • 数组大小可变

猜你喜欢

转载自blog.csdn.net/yaun_1994/article/details/80158336