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++); 10console.log(++num5);let a = 10;let c = a++;  //1. 把a的值赋值给c,此刻c等于10,2.执行a的自增,此刻a=11console.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    14console.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返回结果是falseconsole.log(3>4 && 2<3);
//    两个同时为true,返回结果是trueconsole.log(3<4 && 2<3);if(!(3<4)){console.log('做个屁');}else{console.log('不写');}
//0为false,非0数字为trueif(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);  //2console.log(!bol2 + 1);// 2console.log(10 + !bol2); //11console.log(!10);// false //非0为trueconsole.log(!0);//trueconsole.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的值0let 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的值0let 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,因此结果是unedefinedconsole.log(obj2.run);
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/30798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Zabbix自动注册服务器及部署代理服务器

文章目录 一.zabbix自动注册1.什么是自动注册2.环境准备3.zabbix客户端配置4.在 Web 页面配置自动注册5.验证自动注册 二.部署 zabbix 代理服务器1.分布式监控的作用&#xff1a;2.环境部署3.代理服务器配置4.客户端配置5.web页面配置5.1 删除原来配置5.2 添加代理5.3 创建主机…

c语言——三子棋

基本框架 三个文件: 其中.cpp文件用于游戏具体函数设计&#xff0c;.h文件为游戏的函数声明&#xff0c;test.cpp文件用于测试游戏运行。 需要用到的头文件&#xff1a; #include <stdio.h> #include <stdlib.h>//rand&srand #include <time.h>//时间相…

[oeasy]python0083_[趣味拓展]字体样式_正常_加亮_变暗_控制序列

字体样式 回忆上次内容 上次了解了 一个新的转义模式 \033 逃逸控制字符 esc esc 让输出 退出 标准输出流进行 控制信息的设置 可以 清屏也可以 设置光标输出的位置 还能做什么呢&#xff1f; 可以 设置 字符的颜色吗&#xff1f;&#xff1f;&#xff1f;&#x1f914; 查…

利用Simulink Test进行模型单元测试 - 1

1.搭建用于测试的简单模型 随手搭建了一个demo模型MilTestModel&#xff0c;模型中不带参数 2.创建测试框架 1.模型空白处右击 测试框架 > 为‘MilTestModel’创建 菜单 2.在创建测试框架对话框中&#xff0c;点击OK&#xff0c;对应的测试框架MilTestMode_Harness1就自动…

C语言--联合体-共用体

有时候同一个内存空间存放类型不同&#xff0c;不同类型的变量共享一块空间 像结构体&#xff0c;但是有区别 1、 结构体元素有各自单独空间&#xff0c; 共用体元素共享空间&#xff0c;空间大小由最大类型确定 同一块空间&#xff0c;有时候存放char类型、有时候存放int型&am…

计算机体系中的不同的缓存存储层级说明

分级说明 L1缓存的标准延迟是4个周期。这意味着&#xff0c;当CPU请求数据时&#xff0c;L1缓存需要4个时钟周期来将数据传输给CPU。 L2缓存的标准延迟是12个周期。相对于L1缓存&#xff0c;L2缓存的容量更大&#xff0c;但其读取速度更慢&#xff0c;需要更多的时钟周期来传输…

第五次作业 运维高级 构建 LVS-DR 集群和配置nginx负载均衡

1、基于 CentOS 7 构建 LVS-DR 群集。 LVS-DR模式工作原理 首先&#xff0c;来自客户端计算机CIP的请求被发送到Director的VIP。然后Director使用相同的VIP目的IP地址将请求发送到集群节点或真实服务器。然后&#xff0c;集群某个节点将回复该数据包&#xff0c;并将该数据包…

leetcode357- 2812. 找出最安全路径

这个题比较经典&#xff0c;可以用多个算法来求解&#xff0c;分别给出各个算法的求解方法&#xff0c;主要是分为第一部分的多源BFS求每个位置的距离和第二部分求(0,0)到(n-1,n-1)的最短路径&#xff08;可以用多种方法求&#xff09; 目录 多源BFS求最短路径枚举安全系数判断…

Android Jetpack

Jetpack 是一个由多个库组成的套件&#xff0c;可帮助开发者遵循最佳实践、减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码&#xff0c;让开发者可将精力集中于真正重要的编码工作。 1.基础组件 &#xff08;1&#xff09;AppCompat&#xff1a;使得支持较低…

sklearn垃圾邮件分类

在Python中&#xff0c;可以使用机器学习算法来进行垃圾邮件分类。下面是一个简单的示例&#xff0c;使用朴素贝叶斯算法进行垃圾邮件分类&#xff1a; import pandas as pd from sklearn.feature_extraction.text import CountVectorizer from sklearn.model_selection impor…

Qt画波浪球(小费力)

画流动波浪 #ifndef WIDGET3_H #define WIDGET3_H#include <QWidget> #include <QtMath> class widget3 : public QWidget {Q_OBJECT public:explicit widget3(QWidget *parent nullptr);void set_value(int v){valuev;}int get_value(){return value;} protecte…

C++特有__attribute__的so动态库

这是一段 C 代码&#xff0c;其中使用了 GCC 编译器的一些特殊语法。 extern "C"&#xff1a;这是 C 中的语法&#xff0c;用于指定一个函数或变量应该按照 C 语言的约定进行编译和链接。在 C 中&#xff0c;函数和变量的名称会根据其作用域和命名空间进行修饰&…

el-date-picker设置默认当前日期

HTMl部分&#xff1a; <el-form-item label"拍摄时间&#xff1a;"><el-date-pickerv-model"searchData.filmingTimeRange"type"daterange"align"right"unlink-panelsrange-separator"至"start-placeholder"…

vue中vuex的五个属性和基本用法,另加js-cookie的使用

VueX 是一个专门为 Vue.js 应用设计的状态管理构架&#xff0c;统一管理和维护各个vue组件的可变化状态(你可以理解成 vue 组件里的某些 data )。 Vuex有五个核心概念&#xff1a; state, getters, mutations, actions, modules。 1. state&#xff1a; vuex的基本数据&…

【Linux】-- 进程间通信

目录 一、进程间通信介绍 二、管道 1.什么是管道&#xff08;pipe&#xff09; 2.重定向和管道 &#xff08;1&#xff09;为什么要有管道的存在 &#xff08;2&#xff09;重定向和管道的区别 3.匿名管道 &#xff08;1&#xff09;匿名管道原理 &#xff08;2&…

SpringCloud实用篇5——elasticsearch基础

目录 1.初识elasticsearch1.1 了解ES1.1.1 elasticsearch的作用1.1.2 ELK技术栈1.1.3 elasticsearch和lucene1.1.4 总结 1.2.倒排索引1.2.1.正向索引1.2.2.倒排索引1.2.3.正向和倒排 1.3 es的一些概念1.3.1 文档和字段1.3.2 索引和映射1.3.3 mysql与elasticsearch 1.4 部署单点…

C# ListBox自动滚动方法

1、方法1&#xff1a;添加记录后&#xff0c;选择最后一条记录&#xff0c;让滚动条滚动到底部&#xff0c;再自动取消 listBox1.Items.Add(t ":a good day"); listBox1.SelectedIndex listBox1.Items.Count - 1; listBox1.SelectedIndex -1; //是否取消选中行…

直播招聘小程序解决方案

项目开发愿景 介绍工作拿佣金&#xff0c;Boss直播现真身。做为直播招聘的新平台&#xff0c;让求职和招聘变得更简单&#xff01;企业发布招聘视频&#xff0c;展现公司环境与实力&#xff0c;开通会员可以直播招聘、在线面试功能&#xff1b;求职者刷视频可以刷到工作…

信息安全:访问控制技术原理与应用.

信息安全&#xff1a;访问控制技术原理与应用. 访问控制是网络信息系统的基本安全机制。访问控制是指对资源对象的访问者授权、控制的方法及运行机制。访问者又称为主体&#xff0c;可以是用户、进程、应用程序等&#xff1b;而资源对象又称为客体&#xff0c;即被访问的对象&…

react中hooks分享

一. HOOKS是什么 在计算机程序设计中&#xff0c;钩子一词涵盖了一系列技术&#xff0c;这些技术用来通过拦截函数调用、消息或在软件组件之间传递的事件来改变或增加操作系统、应用程序或其他软件组件的行为。处理这些被截获的函数调用、事件或消息的代码称为“hook”。 在r…