javaScript:js的运算符和简单的对象操作

目录

一.js的运算符

1.算数运算符

+ 运算符

- 运算符

% 取余

/除运算

自增/自减 

相关代码 

2.比较(关系)运算符

关系运算符

== 和 === 的区别

3.逻辑运算符

或 ||

与(并且) &&

非 !

判断规则

逻辑运算的短路算法 

4.三元运算符 

三元运算符 ? :

5.赋值运算符

运算符的优先级

二.相关扩充 

1.语句和表达式的区别

2.一/二元运算 

3.parseInt(num)

4.数据类型的显示转换 

三.简单的对象操作 

相关代码


一.js的运算符

1.算数运算符

算数运算符

+  -  *  /  %  ++  --

+ 运算符

let num1 = 10
let num2 = 20
let num3 = num1 + num2 
console.log(num3)

           如果 + 的两边有一个是字符串,则表示的是字符串的拼接。

           原理:如果两个不同类型的数据相加,有一个是字符串,则另一个数据会被隐式转化为字符串,然后通过+ 和另一个数据拼接在一起

- 运算符

         -运算符可以把他两边的字符串类型 隐式转化为 数字类型,如果被转化的字符串是 一个数字,则参与减法运算,如果 被转化的字符串是 一个普通字符,则得出的结果是 NaN

         除了 + 运算的时候,把数字转化为字符串,其他的算术运算符都是把字符串转化为数字

% 取余

     % 取余 又称 模运算,运算的结果是 相除之后的余数,被除数%除数 返回结果是 余数

被除数和除数不一定都是整数

/除运算

自增/自减 

自增:++ 作用:让变量的值+1  使用场景:经常用于计数来使用。比如进行10次操作,用它来计算进行了多少次了

前置自增:每执行一次,当前变量值加1,其作用相当于 num += 1

后置自增:每执行一次,当前变量数值加1  ,其作用相当于num += 1

区别:前置自增:先自加再使用(记忆口诀:++在前 先加 ) 后置自增:先使用再自加(记忆口诀:++在后  后加)

++ 和 -- 的运算优先级要高于加减乘除 + - * / %

相关代码 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js运算符</title>
</head>
<body>
    
</body>
</html>
<script>
    let num1 = 2;
    let num2 = 3;
    console.log(num1*num2);

    console.log(num1/num2);

    console.log( 0.1 + 0.2 );

    /*
    % 取余 又称 模运算
    运算的结果是 相除之后的余数
    被除数%除数 返回结果是 余数

    被除数和除数不一定都是整数


    */
   let num3 = 10;
   let num4 = 3;
   console.log( num3 % num4 );

   console.log(9.3 % 2.1);

   /*
   ++    --

   a++ ++a 都是自增写法

   c = a++; 先把a的值赋值给c,然后再执行a的自增
   c = ++a; 先执行a的自增,然后再把a的值赋值给c
   */
  let num5 = 10;
//   ++ num5;
//   num5 ++ ;
//   console.log(num5++); 10
  console.log(++num5);

  let a = 10;
  let c = a++;  //1. 把a的值赋值给c,此刻c等于10,2.执行a的自增,此刻a=11
  console.log(c,a);

  let k = 10;
  let m = (k++)+3;
  console.log(k,m)

  let n = 13;
  let s = ++n+(n++)+n;
  /*
  1. ++n n的值变成了14 ,此时让n=14 参与后面的计算
  2. n++ 先把n的值取出来,n=14 参与当前一步的计算,然后n++(n=15)参与后来的计算
  3.s=14+14+15
  */
  console.log(s);
  /*
  -- 自减,a-- --a 使用方式和上面的 ++ 一致
  c=a--;先把a的值赋值给c,然后再执行a的自减
  c = --a; 先执行a的自减,然后再把a的值赋值给c

  ++ 和 -- 的运算优先级要高于加减乘除 + - * / %
  */

 let j=14;
 let num6 = (j++) + (--j) + (j--) + (++j);
 //          14    14   14    14
 console.log(num6);
</script>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js运算符</title>
</head>
<body>
    <input id="txt" type="number" value=""> +
    <input id="txt2" type="number" value=""> =
   <button id="bth">求和</button>
</body>
</html>
<script>
    /*
    1.算数运算符
    2.比较(关系)运算符
    3.逻辑运算符
    4.三元运算符
    5.赋值运算符

    从1到5运算符的优先级依次减弱
    */
   /*
   算数运算符
   + - * / % ++ --
   */
//  + 运算符 
let num1 = 10
let num2 = 20
let num3 = num1 + num2 
console.log(num3)
/*
如果 + 的两边有一个是字符串,则表示的是字符串的拼接
原理:如果两个不同类型的数据相加,有一个是字符串,则另一个数据会被隐式
转化为字符串,然后通过+ 和另一个数据拼接在一起
*/
let str = '阿巴阿巴'
let num4 = str + num2 +num2 + num2
console.log(num4)
let str1 = '阿西吧'
console.log(str + str1)

let num5 = num2 + num2 +num2 + str1
console.log(num5);

// - 运算符
/*
-运算符可以把他两边的字符串类型 隐式转化为 数字类型
如果被转化的字符串是 一个数字,则参与减法运算
如果 被转化的字符串是 一个普通字符,则得出的结果是 NaN

除了 + 运算的时候,把数字转化为字符串,其他的算术运算符都是把字符串转化为数字
*/
let num6 = 200
let num7 = 100
let num8 = '300'
console.log(num6-num7)
console.log(str1-num7)

console.log(num6+num8)
console.log(num6-num8)
    
</script>

2.比较(关系)运算符

关系运算符

 > 大于, < 小于,  >=大于等于 , <=小于等于 ,  ==等于,  != 不等于    === 全等  ,     !== 不全等

关系表达式 的 返回值是 true 或者false

== 和 === 的区别

== 只比较数值,不比较类型

=== 不但比较数值还比较类型

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>关系运算符</title>
</head>
<body>
    
</body>
</html>
<script>
    /*
    关系运算符
    > 大于,< 小于, >=大于等于 ,<=小于等于 , ==等于, != 不等于
    === 全等  , !== 不全等
    关系表达式 的 返回值是 true 或者false

    == 只比较数值,不比较类型
    === 不但比较数值还比较类型
    */

   console.log( 3>=5 );
   console.log( 5>=5 );
   let num1 = 30;
   let num2 = '30';
   console.log('num1和num2是否相等', num1 === num2);
   if (num1 == num2) {
         console.log('相等');
   } else {
        console.log('不相等');
   }

   let str1 = '阿巴阿布';
   let str2 = '阿西吧';
   console.log( str1 != str2);

   console.log('李白'=='青莲居士');
</script>

3.逻辑运算符

逻辑运算符

或 ||

与(并且) &&

非 !

判断规则

$$ 逻辑与   并且    特点:符号两边都为ture结果才为ture   口诀:一假则假

| |  逻辑或    或者  特点 :符号两边有一个ture就为ture  口诀:一真则真

!   逻辑非  取反   特点:ture变false    false变ture   口诀:真变假,假变真

逻辑运算的短路算法 

逻辑运算的短路算法

表达式1 || 表达式2  表达式1为真的时候,表达式2不会被解析

表达式1 && 表达式2  表达式1为真的时候,表达式2才会被解析

4.三元运算符 

三元运算符 ? :

判断条件 ?判断条件为真,则执行当前代码 :判断条件为假,则执行当前代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>逻辑运算符</title>
</head>
<body>
    
</body>
</html>
<script>
    /*
    parseInt(num) 把数字 num 直接转化为整数,他会去掉 num的小数部分
    */
    let num = 325;
    let s = num / 100;
    console.log( parseInt(s) );

    /*
    逻辑运算符
    或 ||
    与(并且) &&
    非 !

    判断规则 
    或 || ;两边的判断条件,只要有一个为真(true),则返回结果为真

    与 &&;两边的判断条件都为真(true),则返回结果为真(true)

    非 ! :取当前结果返回布尔值的 反向值,就是取反的意思
    */
   console.log(3>4 || 2>3);
   console.log(3>4 || 2<3);
   console.log('===========================================');
//    只要一个为true返回结果是false
   console.log(3>4 && 2<3);
//    两个同时为true,返回结果是true
   console.log(3<4 && 2<3);

   if(!(3<4)){
    console.log('做个屁');
   }else{
    console.log('不写');
   }
//0为false,非0数字为true
   if(0){
    console.log('不吃饭');
   }else{
    console.log('减肥');
   }
</script>

5.赋值运算符

  • 目标:能够使用赋值运算符简化代码
  • 赋值运算符:对变量进行赋值运算                                                     
  • 已经学过的赋值运算符: =  将等号右边的值赋予给左边,要求左边必须是一个容器   
  • 其他赋值运算符: +=    -=   *=     /=    %=    使用这些运算符可以在对变量赋值时进行快速操作

运算符的优先级

1. !的优先级比 算术运运算符的优先级高

2.boolean 数据和number类型的数据运算的时候,布尔类型会隐式转化为number类型,其中 false=>0 true=>1

优先级

    1.小括号()

    2.!

    3.算术运算符

    4.比较运算符

    5.逻辑运算符

    6.赋值运算符

    赋值的简写

    = += -= /=

   

    简写形式           含义

    n += 1;    =>     n = n + 1;

    n -= 1;   =>     n = n - 1;

    n *= 1;    =>     n = n * 1;

    n /= 1;    =>     n = n / 1;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>运算符优先级</title>
</head>
<body>
    
</body>
</html>
<script>
    let bol1 = true;
    let bol2 = false;
     console.log(bol1 + 1);  //2
     console.log(!bol2 + 1);// 2
     console.log(10 + !bol2); //11
     console.log(!10);// false //非0为true
     console.log(!0);//true
     console.log('============');
     /*
     1. !的优先级比 算术运运算符的优先级高
     2.boolean 数据和number类型的数据运算的时候,布尔类型会隐式转化为
     number类型,其中 false=>0 true=>1
     */
    
    console.log(10<5+6 || '不吃');
    let str = 10>5+6 || '不吃';
    console.log(str);
    /*
    优先级
    1.小括号()
    2.!
    3.算术运算符
    4.比较运算符
    5.逻辑运算符
    6.赋值运算符

    赋值的简写
    = += -= /=
    
    简写形式           含义
    n += 1;    =>     n = n + 1; 
    n -= 1;   =>     n = n - 1;
    n *= 1;    =>     n = n * 1; 
    n /= 1;    =>     n = n / 1; 
    */

   let n = 10;
   n += 5; //含义 n = n + 5;
   console.log(n);

   // 字符串拼接
   let str1 = '篮球和鸡';
   str1 += 'ikun';
   str1 += 'ikun';
   console.log(str1);
</script>

二.相关扩充 

1.语句和表达式的区别

        表达式和语句:表达式是可以求值的代码,javascript引擎会将其计算出一个结果 。 语句:语句是一段可以执行的代码。

         区别:表达式:因为表达式可被求值,所以它可以写在赋值语句的右侧。 表达式  num = 3+4

         语句:而语句不一定有值,所以比如 alret()弹出对话框 consols.log()控制台打印输出

2.一/二元运算 

一元运算符 :+-     众多的javascript的运算可以根据表达式的个数,分为一元运算符,二元运算符,三元运算符

二元运算符     let  num = 10+10

3.parseInt(num)

把数字 num 直接转化为整数,他会去掉 num的小数部分 

4.数据类型的显示转换 

显示转换

把数据转化为字符串,使用 String()

把数据转化为number,使用 Number()

把数据转化为boolean,使用 Boolean()

另外,非0即为真

0,'' ,null ,undefined 都会转化为 false

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数据类型的显示转换</title>
</head>
<body>
    
</body>
</html>
<script>
    /*
    显示转换
    把数据转化为字符串,使用 String()
    把数据转化为number,使用 Number()
    把数据转化为boolean,使用 Boolean()

    另外,非0即为真
    0,'' ,null ,undefined 都会转化为 false
    */

    // 字符串转数字
   let num = Number('斯巴达');
   console.log(typeof num);
    // 数字 转 字符串
   let str = String(123);
   console.log(typeof str);
   
   //把数据 转 为布尔值
   let bol1 = Boolean('斯巴达');
   console.log(typeof bol1 , bol1);

   let bol2 = Boolean(' '); // ' '引号之间有空格不是空字符串
   console.log(typeof bol2,bol2);

   let bol3 = Boolean(-1);
   console.log(typeof bol3 , bol3);
   
</script>

三.简单的对象操作 

通过 document.getElementById('id') 获取html中的dom元素

每一个html标签都是一个对象,称为dom对象,每一个标签的属性也是一个对象的属性

设置对象属性的值 obj.属性值 = 'aa';

获取对象属性的值 obj.属性名

每一个html标签都有style标签,因此可以使用js 操作style,’

如果设置stylr属性,则给标签行间添加一个style属性

let abc = document.getElementById('bb');

    abc.style.color = '#f00';

如果属性是组合形式的,需要把-去掉,使用驼峰命名法   

 abc.style.fontSize = '50px';

    console.log(abc.title)  //获取title的值0



    let txt = document.getElementById('txt')

    let bth = document.getElementById('bth')

    给bth添加点击事件 

   bth.onclick = function(){

       alert(txt.value);

       console.log(txt.value);

       txt.style.border = '2px #f00 solid';

    };

   通过原生js设置对象

    使用{}创建对象,它里面设置属性的方式是 key:value

    key是属性名 value是属性值

    获取属性的值 obj.key

    设置属性的值 obj.key = value

    如果访问一个对象中不存在的属性那么他的结果是undefined

  let obj = {

        name:'黑山羊',

        age:213123320,

        sex:'女'

    };

    let obj2 = {

        name:'混沌',

        age:202131321,

        sex:'男'

    };

    console.log(obj.name);

    console.log(obj.age);



    console.log(obj2.name);

    console.log(obj2.age);

    // obj2中没有属性 run,因此结果是unedefined

console.log(obj2.run);

相关代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>简单的对象操作</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .wp{
            width: 200px;
            height: 200px;
            background: pink;
        }
    </style>
</head>
<body>
    <div id="wp" class="wp" title="篮球和鸡">
         哎哟,你干嘛~~~
    </div>

    <div id="bb" class="wp" title="篮球和鸡">
        唱跳,wrap,篮球。
   </div>

   <hr>
   <br>
   <input id="txt" type="text" value="">
   <button id="bth">获取输入的值</button>
</body>
</html>
<!-- 
    如果在script标签中,使用了src属性引入了外部js,则该script标签中
    嵌套的所以js代码无效
 -->
<script src="../js/fly.js">
    console.log('鸡你太美~~~'); //无作用
</script>

<script>
    /*
    通过 document.getElementById('id') 获取html中的dom元素

    每一个html标签都是一个对象,称为dom对象,每一个标签的属性也是一个
    对象的属性

    设置对象属性的值 obj.属性值 = 'aa';
    获取对象属性的值 obj.属性名

    每一个html标签都有style标签,因此可以使用js 操作style,’
    如果设置stylr属性,则给标签行间添加一个style属性

    */
    let abc = document.getElementById('bb');
    abc.style.color = '#f00';
//   如果属性是组合形式的,需要把-去掉,使用驼峰命名法
    abc.style.fontSize = '50px';
    console.log(abc.title)  //获取title的值0

    let txt = document.getElementById('txt')
    let bth = document.getElementById('bth')
    //给bth添加点击事件
    bth.onclick = function(){
       alert(txt.value);
       console.log(txt.value);
       txt.style.border = '2px #f00 solid';
    };

    //通过原生js设置对象
    /*
    使用{}创建对象,它里面设置属性的方式是 key:value 
    key是属性名 value是属性值
    获取属性的值 obj.key
    设置属性的值 obj.key = value

    如果访问一个对象中不存在的属性那么他的结果是undefined
    */
    let obj = {
        name:'黑山羊',
        age:213123320,
        sex:'女'
    };
    let obj2 = {
        name:'混沌',
        age:202131321,
        sex:'男'
    };
    console.log(obj.name);
    console.log(obj.age);

    console.log(obj2.name);
    console.log(obj2.age);
    // obj2中没有属性 run,因此结果是unedefined
    console.log(obj2.run);
</script>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小姚学前端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值