JavaScript基础语法2

判断数据类型

  • 既然已经把数据分开了类型,那么我们就要知道我们存储的数据是一个什么类型的数据

  • 使用 typeof 关键字来返回数据的类型

    typeof 检测数据类型(有返回结果)

    var a = null ;

    console.log( typeof a ); // object 对象

// 第一种使用方式
var n1 = 100;
console.log(typeof n1);

// 第二种使用方式
var s1 = 'abcdefg';
console.log(typeof(s1));

判断一个变量是不是数字

  • 可以使用 isNaN 这个方法来判断一个变量是不是数字,是数字则为false;不是则为true
  • isNaNis not a number
// 如果变量是一个数字
var n1 = 100;
console.log(isNaN(n1)); //=> false

// 如果变量不是一个数字
var s1 = 'Jack'
console.log(isNaN(s1)); //=> true

数据类型转换

  • 数据类型之间的转换,比如数字转成字符串,字符串转成布尔,布尔转成数字等
  • 计算机中任何数据进行计算都需要转换成二进制

隐式转换

弱类型语句中,类型不同,弱类型语言会自动将数据转换为相同类型,然后运算

隐式转换遵从 String() Number() Boolean()

强制转换

主动将数据的类型强制转换成某种类型,强制转换可以分为以下几种情况:

其他数据类型转成数值

  1. Number(变量)

    可以把一个变量强制转换成数值类型

    可以转换小数,会保留小数

    可以转换布尔值

    遇到不可转换的都会返回 NaN

    纯数字字符 =>数字; 纯字母字符 => NaN; 带字母字符 => NaN; null => 0; undefined => NaN; true => 1; false => 0

  2. parseInt(变量)

    从第一位开始检查,是数字就转换,直到一个不是数字的内容

    开头就不是数字,那么直接返回 NaN

    不认识小数点,只能保留整数

    纯数字字符 =>数字; 纯字母字符 / 以字母开头的带数字字符 => NaN; null => NaN; undefined => NaN; true => NaN; false => NaN;

    数字开头带字母的字符 => 转换到第一个字母字符前为止,前面的数字字符转成数字*

    【注】parseInt ( str , n ) 将 n 进制字符串str 转换成 10进制数值没有n,默认以10进制显示str字符串并转换程10进制数值*

    即,parseInt ( str , n ) 是 (数据). toString(n)的逆转换

  3. parseFloat(变量)

    从第一位开始检查,是数字就转换,知道一个不是数字的内容

    开头就不是数字,那么直接返回 NaN

    认识一次小数点

  4. 除了加法以外的数学运算

    运算符两边都是可运算数字才行

    如果运算符任何一遍不是一个可运算数字,那么就会返回 NaN

    加法不可以用

其他数据类型转成字符串

  1. 变量.toString()

    有一些数据类型不能使用 toString() 方法,比如 undefinednull

    (数据). toString(n) 将数字转换成 n 进制字符 (进制必须大于等于 2 且小于等于36 )

    (数据).toFixed(n) 数值转成字符串并保留小数点后 n 位,四舍五入(存在误差)

  2. String(变量)

    所有数据类型都可以

  3. 使用加法运算

    在 JS 里面,+ 由两个含义

    字符串拼接: 只要 + 任意一边是字符串,就会进行字符串拼接

    加法运算:只有 + 两边都是数字的时候,才会进行数学运算

其他数据类型转成布尔

  1. Boolean(变量)

    在 js 中,只有 ""0nullfalseundefinedNaN,这些是 false

    其余(包含带空格的空字符串" ")都是 true

运算符

  • 就是在代码里面进行运算的时候使用的符号,不光只是数学运算,我们在 js 里面还有很多的运算方式

数学运算符

  1. +(字符相加和数值相加)

    只有符号两边都是数字的时候才会进行加法运算

    只要符号任意一边是字符串类型,就会进行字符串拼接

    【注】字符表示单个字母;字符串表示多个字母组成字串

  2. -

    会执行减法运算

    会自动把两边都转换成数字进行运算

  3. *

    会执行乘法运算

    会自动把两边都转换成数字进行运算

  4. /

    会执行除法运算

    会自动把两边都转换成数字进行运算

  5. %

    会执行取余运算

    会自动把两边都转换成数字进行运算

1)- * / % 都是隐式转换成数值,不论有没有字符

2)+如果是字符和非字符相加,则会自动将非字符隐式转换成字符 String() 此时+为拼接符

如果没有字符,则会隐式转换成数值进行计算

数值 + NaN = NaN, true + false = 1

赋值运算符

  1. =

    就是把 = 右边的赋值给等号左边的变量名

    var num = 100

    就是把 100 赋值给 num 变量

    那么 num 变量的值就是 100

  2. +=

    var a = 10;
    a += 10;
    console.log(a); //=> 20
    

    a += 10 等价于 a = a + 10,这里的10就是步长

  3. -=

    var a = 10;

    a -= 10;
    console.log(a); //=> 0
    

    a -= 10 等价于 a = a - 10

  4. *=

    var a = 10;
    a *= 10;
    console.log(a); //=> 100
    

    a *= 10 等价于 a = a * 10

  5. /+

    var a = 10;
    a /= 10;
    console.log(a); //=> 1
    

    a /= 10 等价于 a = a / 10

  6. %=

    var a = 10;
    a %= 10;
    console.log(a); //=> 0
    

    a %= 10 等价于 a = a % 10

在元数据的基础上进行累加 累减等操作,得到计算后的新值,原数据也会发生改变

eg: var e=20;

console.log(e-10); //结果是10 e的值没有发生改变e:20

console.log(e-=10); //结果是10 e的值发生改变

比较运算符

  1. ==

    • 比较符号两边的值是否相等,不管数据类型

      1 == '1'

      两个的值是一样的,所以得到 true

  2. ===

    • 比较符号两边的值和数据类型是否都相等

      1 === '1'

      两个值虽然一样,但是因为数据类型不一样,所以得到 false

  3. !=

    • 比较符号两边的值是否不等

      1 != '1'

      因为两边的值是相等的,所以比较他们不等的时候得到 false

  4. !==

    • 比较符号两边的数据类型和值是否不等

      1 !== '1'

      因为两边的数据类型确实不一样,所以得到 true

  5. >=

    • 比较左边的值是否 大于或等于 右边的值

      1 >= 1 结果是 true

      1 >= 0 结果是 true

      1 >= 2 结果是 false

  6. <=

    • 比较左边的值是否 小于或等于 右边的值

      1 <= 2 结果是 true

      1 <= 1 结果是 true

      1 <= 0 结果是 false

  7. >

    • 比较左边的值是否 大于 右边的值

      1 > 0 结果是 true

      1 > 1 结果是 false

      1 > 2 结果是 false

  8. <

    • 比较左边的值是否 小于 右边的值

      1 < 2 结果是 true

      1 < 1 结果是 false

      1 < 0 结果是 false

【注】
隐式转换内容为数值,如果都是字符,则通过ASCII转换成编码值,再比较。
没办法比较时,结果为 false

!==(绝对不等) 和 === 都不会隐式转换

null和undefined特殊都没有值 不和其他值进行比较

console.log(0==null); // false null是用来切断引用关系的

console.log(null==undefined); // true

以下几点均为true

console.log(""==0); // 空字符串会隐式转换成数值 0

console.log(""==false);

console.log(0==false);

console.log(NaN==NaN); // false 非数值永不等

逻辑运算符

  1. &&

    • 进行 且 的运算

    • 一假即假

      遇到第一个条件为假,则停止后续的判断,返回其假值,否则则一直运行到最后,若最后一个条件为真,则返回该值

    • 符号左边必须为 true 并且右边也是 true,才会返回 true

      只要有一边不是 true,那么就会返回 false

      true && true 结果是 true

      true && false 结果是 false

      false && true 结果是 false

      false && false 结果是 false

    • 符号左边必须为 true 并且右边也是 true,才会返回 true

      只要有一边不是 true,那么就会返回 false

      true && true 结果是 true

      true && false 结果是 false

      false && true 结果是 false

      false && false 结果是 false

  2. ||

    • 进行 或 的运算

    • 一真即真

      遇到第一个条件为真,则停止后续的判断,返回其真值,否则则一直运行到最后,若最后一个条件为假,则返回该值

    • 符号的左边为 true 或者右边为 true,都会返回 true

      只有两边都是 false 的时候才会返回 false

      true || true 结果是 true

      true || false 结果是 true

      false || true 结果是 true

      false || false 结果是 false

    • 符号的左边为 true 或者右边为 true,都会返回 true

      只有两边都是 false 的时候才会返回 false

      true || true 结果是 true

      true || false 结果是 true

      false || true 结果是 true

      false || false 结果是 false

  3. !

    • 进行 取反 运算

         本身是 true 的,会变成 false
      
         本身是 false的,会变成 true
      
         !true结果是 false
      
         !false结果是 true
      

自增自减运算符(一元运算符)

  1. ++

    • 进行自增运算

    • 分成两种,前置++后置++

    • 前置++,会先把值自动 +1,在返回

      var a = 10;
      console.log(++a);
      // 会返回 11,并且把 a 的值变成 11
      
    • 后置++,会先把值返回,在自动+1

      var a = 10;
      console.log(a++);
      // 会返回 10,然后把 a 的值变成 11
      
  2. --

    • 进行自减运算
    • 分成两种,前置–后置–
    • ++ 运算符道理一样

【注】计算时全部隐式转换成数值运算

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值