ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第三天 #JS基础

2021-08-01 17:04:54  阅读:133  来源: 互联网

标签:console log NaN 基础 第三天 JS 运算符 false true


目录

一、运算符

二、一元运算符

三、自增和自减

四、逻辑运算符

五、赋值运算符

六、关系运算符

七、运算符优先级

八、编码

九、代码块


一、运算符

常见运算符:

运算符类型例子
加法:+Number + Boolean1 + true2
Boolean + Booleantrue + false1
Number + Null2 + null2
Null + Booleannull + true1
NaN + NumberNaN + 1NaN
减法:-Number - String3 - "1"2
Number - Boolean2 - true1
乘法:*Number * String2 * "3"6
Boolean * Numbertrue * 22
Number * Undefined2 * undefinedNaN
除法:/Number / Boolean4 / true4
Number / Number7 / 22.5
取余:%Number % Number9 % 41

当对非number类型的值进行运算时,会将这些值转换为number类型再运算,但是进行加法运算时,字符串不会转换!!任何数与NaN运算都是NaN。

1.字符串数字与字符串数字或与数字之间进行加法运算,此时的加号是拼接符。

例:

    a = "123" + "345";
    console.log(a); // 123345
    a = "12" + 23;
    console.log(a); // 1223

2.任何值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作。

    a = "1" + true;
    console.log(a); // 1true

3.将一个任意的数据类型转换为String:我们只需要为任意的数据类型+ 一个""(空串)即可将其转换为String类型(隐式转换),实际也是调用的String()函数。

    a = 123 + "";
    console.log(typeof a); // String
    console.log(a); // 123

4.可以通过一个值-0    *1     /1来将其转换为Number,原来的值不发生改变,只是类型变了(隐式转换),原理和Number()函数一样。

    a = "123" - 0;
    console.log(typeof a); // number
    a = "123" * 1;
    console.log(typeof a); // number
    a = "123" / 1;
    console.log(typeof a); // number

二、一元运算符

        一元运算符只需要一个操作符。

运算符运算类型例子
正号:+String+"2"2
负号:-Boolean-true-1

1.对于非Number类型的值,会先转换为Number,然后再运算

    var a = "2";
    a = -a;
    console.log(a); // -2   
    a = 1 + +"2" + 3;
    console.log(a); // 6

2.可以对一个其他的数据类型使用+,来将其转换为number, 它的原理和Number()函数一样

    a = +true;
    console.log(a); // 1
    console.log(typeof a); // number

三、自增和自减

类型种类相同点不同点
自增i++

原变量的值会立即自增1

先运算在自增1
++i先自增1再运算
自减i--

原变量的值会立即自减1

先运算再自减1
--i先自减1再运算

1.自增

    a = 3;
    console.log(a++, a); // 3 4
    console.log(++a, a); // 5 5

2.自减

    a = 5;
    console.log(a--, a); // 5 4
    console.log(--a, a); // 3 3

四、逻辑运算符

常用逻辑运算符

逻辑运算符例子
非:!!truefalse
!4false
与:&&true && falseflase
0 && 30
或:||false || truetrue
0 || 33

对于非布尔值进行 与或非 运算时,会先将其转换为布尔值,再进行运算,并且返回原值。

1. !运算:

    var a = true;
    a = !a;
    console.log(a); // false
    a = 4;
    a = !a;
    console.log(a); // false

可以为一个值取两次反,来将其转换为Boolean值,原理和Boolean()函数一样(隐式转换)

    a = 3;
    a = !!a;
    console.log(a); // true

2.  &&运算

运算规则:两个值都是true就返回true;如果第一个数是true会检查第二个数,如果第一个数是false,则不会检查第二个数。

如果第一个值为true,则返回后面一个

    var a = 2 && 3;
    console.log(a); // 3

第一个值为false,则返回第一个

    a = NaN && 0;
    console.log(a); // NaN

    a = 0 && NaN;
    console.log(a); // 0

3.  ||运算

运算规则:有一个值是true则返回true;如果第一个数是true,不会检查第二个值,如果第一个数是false,会检查第二个数。

如果第一个值为true,则直接返回第一个值

    a = 2 || NaN;
    console.log(a); // 2

如果第一个值为false,则返回第二个值

    a = 0 || 3;
    console.log(a); // 3

五、赋值运算符

赋值运算符例子等价于
=a = 3-------------
+=a += 3a = a + 3
-=a -= 3a = a - 3
*=a *= 3a = a * 3
/=a /= 3a = a / 3
%=a %= 3a = a % 3

六、关系运算符

关系运算符例子
大于:>3 > "2"true

          "123222222" > +"5"

true

                   "bbc" > "b"

true
小于:<

                     "a" < "b"

true
相等:==

                    true == "1"

true

                     null == 0

false

              undefined == null

true
NaN == NaNfalse
不等:!=

                    1 != "1"

false
全等:===

                  3 === "3"

false
不全等:!==

                  3 !== "3"

true

1.关系运算符  >  <  >=  <=  ,对于非数值进行比较时,会将其转换为数字然后在比较

    console.log(1 > "0"); // true
    console.log(10 > null); // true

任何值和NaN做比较都是NaN

console.log(10 > "hello"); // false

比较两个字符串时,不会将其转换为数字进行比较,而会分别比较字符串中字符的Unicode编码

    console.log("6" < "2"); // false
    console.log("11" < "5"); // true
    console.log("a" < "b"); // true

比较字符编码时是一位一位的进行比较,如果两位一样,则比较下一位

console.log("bbc" > "b"); // true 

如果比较两个字符串型的数字,一定要先转型再比较

 console.log("123222222" > +"5"); // true

2.当使用==  != 来比较两个值时,如果值的类型不同,则会自动进行类型转换,将其转换为相同的类型然后在比较。

(1) 相等: == 只比较两个数的值

    console.log(1 == "1"); // true
    console.log(true == "1"); // true
    console.log(true == "hello"); // false
    console.log(null == 0); // false

undefined衍生自null,所以这两个值做相等判断时,会返回true

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

NaN不和任何值相等,包括他本身

console.log(NaN == NaN); // false
console.log(NaN == "1"); // false

通过isNaN()函数来判断一个值是否是NaN

    console.log(isNaN(NaN)); // true
    console.log(isNaN(123)); // false

(2)不相等 !=  只比较两个数的值

    console.log(10 != 3); // true
    console.log(1 != "1");  // false

(3)全等 === 比较两个数的值和类型, 都相等才会返回true

console.log(3 === "3"); // false

(4)不全等!== 比较两个数的值和类型, 有一样不相等都会返回true

console.log(3 !== "3"); // true

七、运算符优先级

下面表中 越上面优先级越高,同一级优先级一样,优先级一样时,语句从左往右依次执行。

.[ ]new
( )
++--
!~+(正号)-(负号)typeofvoiddelete
%*/
+(加号)-(减号)     
<<>>>>>
<<=>>=
==!=====
&
^
|
&&
||
?:
=+=-=*=/=%=<<=>>=>>>=&=^=|=
,

八、编码

1.在字符串中使用转义字符输入Unicode编码: \u四位编码

console.log("\u2620");

2.在页面中输出Unicode编码: &#编码;  这里编码需要十进制

<h1 style="font-size: 100px;">&#9760;</h1>

九、代码块

1.在JS中可以使用{}来为语句进行分组

  • 同一个{}中的语句我们称为是一组语句,它们要么都执行,要么都不执行,
  • 一个{}中的语句我们也称为叫一个代码块
// 两个代码块
{
  var a = 5;
  alert("hello");
  console.log("你好");
  document.write("大美女"); 
}

{
  var a = 5;
  alert("hello");
  console.log("你好");
  document.write("大美女"); 
}

2.jS中的代码块,只具有分组的的作用,没有其他的用途

3.大括号末尾不需要分号 ;

4.代码块里面的内容,在外部是完全可见的

{
  var a = 5;
  alert("hello");
  console.log("你好");
  document.write("大美女"); 
}
  console.log(5); // 5

标签:console,log,NaN,基础,第三天,JS,运算符,false,true
来源: https://blog.csdn.net/weixin_52809337/article/details/119257907

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有