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

目录

一.js的运算符

1.算数运算符

[+ 运算符](#+ 运算符)

[- 运算符](#- 运算符)

[% 取余](#% 取余)

/除运算

自增/自减

相关代码

2.比较(关系)运算符

关系运算符

[== 和 === 的区别](#== 和 === 的区别)

3.逻辑运算符

[或 ||](#或 ||)

[与(并且) &&](#与(并且) &&)

[非 !](#非 !)

判断规则

逻辑运算的短路算法

4.三元运算符

[三元运算符 ? :](#三元运算符 ? :)

5.赋值运算符

运算符的优先级

二.相关扩充

1.语句和表达式的区别

2.一/二元运算

3.parseInt(num)

4.数据类型的显示转换

三.简单的对象操作

相关代码


一.js的运算符

1.算数运算符

算数运算符

    • * / % ++ --

+ 运算符

html 复制代码
let num1 = 10
let num2 = 20
let num3 = num1 + num2 
console.log(num3)

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

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

- 运算符

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

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

% 取余

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

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

/除运算

自增/自减

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

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

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

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

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

相关代码

html 复制代码
<!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>
html 复制代码
<!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

== 和 === 的区别

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

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

html 复制代码
<!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.三元运算符

三元运算符 ? :

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

html 复制代码
<!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;

html 复制代码
<!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

html 复制代码
<!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属性

javascript 复制代码
let abc = document.getElementById('bb');

    abc.style.color = '#f00';

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

javascript 复制代码
 abc.style.fontSize = '50px';

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



    let txt = document.getElementById('txt')

    let bth = document.getElementById('bth')

给bth添加点击事件

javascript 复制代码
   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

javascript 复制代码
  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

javascript 复制代码
console.log(obj2.run);

相关代码

html 复制代码
<!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>
相关推荐
勤奋的知更鸟5 分钟前
JavaScript 性能优化实战:深入性能瓶颈,精炼优化技巧与最佳实践
开发语言·javascript·性能优化
耶啵奶膘10 分钟前
css——width: fit-content 宽度、自适应
前端·css
OEC小胖胖11 分钟前
前端框架状态管理对比:Redux、MobX、Vuex 等的优劣与选择
前端·前端框架·web
hqxstudying22 分钟前
Java行为型模式---模板方法模式
java·开发语言·设计模式·代码规范·模板方法模式
weixin_4432906926 分钟前
【脚本系列】如何使用 Python 脚本对同一文件夹中表头相同的 Excel 文件进行合并
开发语言·python·excel
字节架构前端1 小时前
k8s场景下的指标监控体系构建——Prometheus 简介
前端·架构
奕羽晨1 小时前
关于CSS的一些读书笔记
前端·css
荷蒲1 小时前
【小白量化智能体】应用5:编写通达信股票交易指标及生成QMT自动交易Python策略程序
开发语言·python
ljh5746491191 小时前
PHP password_verify() 函数
开发语言·php