if ( ( (b+c) * 30 + 70 * (d-3)) * e + 50 > 0 ) {document.write("b+c=" + (b+c));
}
<script type="text/javascript">var a = "4"; // 字符串变量var b = 4; // 数值型变量var c = a + b; // 表达式中,操作数b先被转换为字符串类型alert(c);// c是一个字符串类型
</script>

相等运算符“==”、不等运算符“!=”:

<script type="text/javascipt">var a = "10";var b = 10;if (a == b) { // a、b将发生类型转换,此处为:truealert("a等于b");}
</script>
<script type="text/javascript">var students = new Array("杨宗楠", "杨玉婷", "李莉");for (index in students) {if (students[index] != "杨宗楠") {document.write("<li>" + students[index]);} else {document.write("<li><font color=red>" + students[index] + "</font>");}}
</script>

等同运算符“===”、不等同运算符“!==”:

<script type="text/javascript">var a = "10"var b = 10;if (a == b) {document.write("<li>在非严格意义上,a等于b");}if (a ===b) {document.write("<li>a严格等于b");} else {document.write("<li>在严格意义上,a不等于b");}
</script>

var phone1 = "13800000000";
var phone2 = 13800000000;
if (phone1 !== phone2) { // truealert("两电话号码不相等");
}
<html>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<li>50点点卡单价为4.5元,您确定购买<input id="text1" style="width: 31px; height: 18px" type="text"/>张<input id="button1" type="button" value="确定支付" onclick="return button1_onclick()">(不能超过5张)
</li>
<script type="text/javascript">function button1_onclick() {if (text1.value < 1 || isNaN(text1.value)) {alert("您输入不正确,请重新输入");text1.value = ""; // 清空输入框} else {alert("您应当支付:" + text1.value * 4.5 + "元");}}
</script>
</body>
</html>

 

<script type="text/javascript">var actTotal = 109.7;var payTotal = 123.45;document.write("<li>您账上余额:" + actTotal + "元<br>");document.write("<li>您需要支付:" + payTotal + "元<br>");document.write("<input id='btn_pay' type='button' value='确认支付' style='width: 150px' onclick='btn_pay_onclick()'/><br>");if (payTotal > actTotal) {document.write("信息:<font color='red'>您余额不足,无法完成支付!</font>");btn_pay.disabled = true;} else {btn_pay.disabled = false;}function btn_pay_onclick() {document.write("<li><font color='red'>已完成支付</font>");document.write("您账上余额:" + (actTotal - payTotal) + "元<br>");}
</script>

instanceof运算符:

instanceof运算符返回一个布尔值,表明某对象是否是某个类的实例。得到一个对象时,有时需要得知其属于哪个类,确定对象的身份。

使用语法:

result = Obj instanceof Class
如果Obj是类Class的对象,则result返回ture,否则返回false。
var nameList = new Array("Lily", "Bob", "Petter");
var nameJet = "Jet";
if (nameList instanceof Array) {// 如果nameList是数组对象实例,则nameList.push(nameJet);// 将"Jet"名字添加到数组中
}

当要确定某个对象的类型时可以使用typeof运算符。

字符串、逻辑运算符、位运算符这里就不介绍了,与其他高级编程语言类似。

new运算符:

使用语法:

new constructure([args,[...]);
• constructure:类的构造函数,用于构造对象
• args:传递给构造函数的参数,可选项
————————————————————————————————————————
例如,创建一个字符串对象:
var myName = new String("Foxsir");
注:若要删除之,必须对引用对象的变量赋null值。

void运算符:

表达式可以返回一个值,然而有些地方却不需要返回值。此时可以使用void运算符来避免表达式返回值,void运算符可以带来灵活的设计。

例如,将JavaScript代码写到浏览器地址栏中并执行,为了使当前文档内容不至于被清除,地址栏中的代码不能有返回值。

open方法返回一个值引用新打开的窗口如果不使用void运算符屏蔽返回值,当前窗口的内容将被清除并且写入“[Object]”。

void可以让表达式被执行而结果被忽略,这个特性在一些场合非常有用。

typeof运算符:

typeof返回6种可能的值:"Number"、"String"、"Boolean"、"Object"、"Function"、"undefined"。

<script type="text/javascript">var t1 = 123;var t2 = "abc";var t3 = true;var t4 = new String();var t5 = f;var t6;document.write("<li>" + typeof t1 + "<br>");document.write("<li>" + typeof t2 + "<br>");document.write("<li>" + typeof t3 + "<br>");document.write("<li>" + typeof t4 + "<br>");document.write("<li>" + typeof t5 + "<br>");document.write("<li>" + typeof t6 + "<br>");document.write("--" + typeof (typeof t4) + "--");function f() {return 0;}
</script>

可以看到,typeof(表达式)返回的类型是对应的字符串小写。

注:如果t5赋值为一个自定义的function的名字,则typeof类型为这个function返回值的类型。

delete运算符:

要删除使用new运算符创建的对象需要将对象的引用赋值null,当引用为0时系统自动收回对象所占资源。delete运算符则可以删除对象的一个属性或数组的一个元素,JavaScript对象的属性可以动态添加。对于动态添加的属性可以用delete运算符将其删除,这与其他面向对象的编程语言不同。

<script type="text/javascript">var student = new Object();student.name = "Tom";student.age = 20;student.sex = "男";document.write("<li>" + student["name"] + ":" + student["sex"] + " " + student["age"]);delete student.age;document.write("<br>删除age属性<br><li>" + student["name"] + ":" + student["sex"] + " " + student["age"]);
</script>

函数调用运算符call:

函数调用运算符“call”,作用于Function对象。主要功能是调用对象的一个方法,并以另一个对象作替换为当前对象,以改变this指针的指向。JavaScript函数和对象方法的调用通常发生于一个运行地上下文中,一般为Global对象上下文。但当前执行上下文可以更改,使用call运算符即可达到目的。

语法如下:

对象名.call([thisObj, [arg1, [arg2, [argn, [...]]]]])
• 对象名:为一个有效的Function对象
• thisObj:是即将转换为当前上下文对象的对象引用,可选,当省略时自动设置为Global对象
• arg:是传递给Function对象的参数,可选

使用call运算符可以改变函数执行上下文,这个特性在一些特殊场合非常有用。

<script type="text/javascript">function showStudentInfo() {document.write("<li>" + this.name + " " + this.age + "<br>");}function Student(_name, _age) {this.name = _name;this.age = _age;}var stu1 = new Student("Tom", 20);var stu2 = new Student("Lily", 21);showStudentInfo.call(stu1);showStudentInfo.call(stu2);
</script>

call运行符调用函数showStudentInfo,此时执行上下文分别改变为stu1和stu2,目的是重设函数对象showStudentInfo的this指针的指向。

this运算符:

“this”严格地说是一个关键字,也可以理解为运算符。面向对象的编程中要引用当前对象,this运算符可以返回当前对象的引用。this通常用在对象构造函数中,用来引用函数对象本身。

给自定义对象添加属性时,在类构造函数中使用this运算符。

例如,创建一个汽车类,给汽车添加最大速度和载重属性:

function Car(_rateMax, _carryingCapacity) {// 构造函数this.rateMax = _rateMax; // 添加属性:极速this.carryingCapacity = _carryingCapacity;// 添加属性:最大载重
}

运算符优先级:

第4章 JavaScript表达式与运算符相关推荐

  1. JavaScript权威设计--JavaScript表达式与运算符(简要学习笔记五)

    1.3种原始表达式 1.直接量:    1.23    //数字直接量 "hello"    //字符串直接量 ... 2.保留字构成的原始表达式: true    //返回布尔值 ...

  2. JavaScript面试时候的坑洼沟洄——表达式与运算符

    上篇博客JavaScript面试时候的坑洼沟洄--数据类型总结了一下JavaScript数据类型几转换的相关知识,很多朋友可能和我一样,买了书后对数据类型啊.运算符啊.语句啊都是扫两眼或直接略过的,自 ...

  3. itpt_TCPL 第二章:类型、运算符以及表达式

    2016.07.06 – 07.20 个人英文阅读练习笔记(极低水准). 第二章:类型.运算符以及表达式 07.11 在程序中,变量和常量是被操作的基本的数据对象.声明列出将会被使用的变量并告知这些变 ...

  4. c语言分量运算符举例,第2章C语言基础-运算符及其表达式摘要.ppt

    第2章C语言基础-运算符及其表达式摘要 * * * C语言程序设计 C语言程序设计 模仿练习 #include void main() { int n1=10; float n2=3.7; char ...

  5. 第五模块·WEB开发基础-第2章JavaScript基础

    第1章 JavaScript基础 01-JavaScript历史介绍 02-JavaScript的组成 03-JavaScript的引入方式 04-变量的使用 05-基本数据类型(一) 06-基本数据 ...

  6. 《JavaScript权威指南第7版》第11章 JavaScript标准库

    第11章 JavaScript标准库 11.1 Set和Map 11.1.1 Set类 11.1.2 Map类 11.1.3 WeakMap和WeakSet 11.2 类型数组和二进制数据 11.2. ...

  7. C++ Primer 学习笔记(第四章:表达式)

    2019独角兽企业重金招聘Python工程师标准>>> ##C++ Primer 学习笔记(第四章:表达式) [TOC] ###4.1 基础 左值和右值: 当一个对象被用作右值的时候 ...

  8. JavaScript表达式--掌握最全的表达式,一切尽在掌握中,让表达不再是难事

    一.JavaScript表达式: 算术表达式: 字符串表达式: 关系(比较)表达式: 逻辑表达式 二.JavaScript运算符: ●什么是表达式--表达式是产生一个结果值的式子,常量,变量,运算符. ...

  9. JavaScript中delete运算符

    JavaScript中delete运算符是 从对象中删除一个属性,或从数组中删除一个元素. 使用方法: delete expressionwww.mlybyby.com expression 参数是一 ...

最新文章

  1. 给Java新手的一些建议——Java知识点归纳(Java基础部分)
  2. [zz]Ubuntu建立本地源实用案例
  3. 转载---SQL Server XML基础学习2之--FOR XML AUTO/RAW
  4. CRM Fiori应用 Appointment的close date字段
  5. MySQL:Innodb page clean 线程 (二) :解析
  6. zendstudio 默认网页打开your project的时候不显示本地主机localhost的解决方法
  7. python遇到的问题-Python常见问题
  8. 中小企业 IT 运维福利:快速构建 on-call 机制
  9. java判断读到末尾_Java 中的运算符和流程控制
  10. Java8刚刚普及,Java12即将发布,程序员吐槽学不动求慢一点
  11. 遥感技术在水利行业的应用
  12. 脚本都不写,不能算正式测试
  13. 蓝桥杯C语言基础训练答案,蓝桥杯c语言答案.doc
  14. GAN生成的人脸数据集
  15. html实现“加入收藏”代码
  16. 【组合数学】多项式定理 ( 多项式系数 | 多重集全排列 | 对应放球子模型方案数 | 多项式系数相关恒等式 )
  17. 在win10本地开发springboot项目能上传图片,并能通过URL直接从浏览器访问,但是部署到服务器上后能上传文件,但是通过浏览器无法访问图片
  18. js隐藏显示div页面方法
  19. EChat(简易聊天项目)一、登录注册实现
  20. 论文排版中MathType的使用(论文投稿必备)

热门文章

  1. arcgis坐标系未定义_科学网—ArcGIS中的坐标系:基本概念和常用操作 - 李郎平的博文...
  2. 竞赛服务器响应超时是否尝试重连,“吃鸡”坐在后座也能操控载具?几分钟后,我收到15字提醒...
  3. ab压力测试并发测试基于HTTP
  4. kuangbin专题八 HDU4009 Transfer water (无定根最小树形图)
  5. Matlab 将计算结果制作成 gif 动画
  6. python为什么叫大蟒蛇_Python(大蟒蛇)与云计算
  7. python电影情感评论分析_python--电影评论文本情感分类
  8. 数据结构与算法之排序(Java版)
  9. 运算符、操作符、if switch语句婚礼纪主页
  10. C++ Primer Plus(第六版)--学习杂记(第六章)