javascript表达式和运算符详解

发布时间 - 2026-01-10 22:54:44    点击率:

一、js表达式

定义:表达式是指能计算出值得任何可用程序单元。  ——wiki

   表达式是js一种短语,可是js解释器用来产生一个值。  ——js《权威指南》

1.原始表达式。

常量/直接量: 3.14/ "test" 等

关键字: null,this,true,false 等

变量: i,k,j 等

复合表达式:原始表达式和原始表达式之间用运算符连接可以组成一个复合表达式。

例如: 10 * 20 这就是一个复合表达式

2.(数组、对象的)初始化表达式。

例如:

[1,2]  等价于  new Array(1,2);

[1,,,2]  等价于  new Array(1,undefined,undefined,2);

{x:1,y:2} 等价于  var obj = new Object();

obj.x = 1;obj.y = 2;

3.函数表达式。

var fn = function(){};

或者:

(function(){ console.log("hello") })();

如果你不理解函数表达式后面还会有对应的介绍。

4.属性访问表达式。

var obj = {x:1}

我们可以通过  obj.x 或者 obj["x"]来访问它的属性,这一类表达式就称之为属性访问表达式。

5.调用表达式。

func();  来调用一个函数,这样的表达式就称之为调用表达式。

6.对象创建表达式。

例如:

new Func(1,2);我们可以传参,如果没有参数我们也可以new Object;创建一个空的对象这样也是合法的。

二、js运算符(一般用于表达式之间进行一些运算)。

1.按照运算符的操作数的数量:

 一元运算符: +num

 二元运算符: a + b

 三元运算符: c?a:b

2.按照功能区分:

赋值:x += 1 (或者-=,=等)

比较:a == b

算数:a - b

位: a | b

逻辑: exp1 && exp2 (或与非)

字符串:“a” + “b”

特殊: delete obj.x

下面我们对特殊运算符展开来讲:

条件运算符:var c = true?1:2    //c=1

逗号运算符:var val = (1,2,3)  // val = 3  从左到右依次计算,取最后的

delete运算符:就是删除对象上的属性。

--例如:

var obj = {x:1}
  obj.x //1
  delete obj.x
  obj.x //undefined

从IE9开始,我们可以给对象设置configurable标签,当configurable:true时属性才可以被delete掉

例:

var obj = {}
Object.defineProperty(obj, 'x', {
configurable:false,
value:1
});
delete obj.x
obj.x //1 

3. in 运算符。

 例:window.x = 1;那我们想知道window到底有没有x呢,我们就可以用 in

  ”x“ in window;    // true 

4. instanceof  和 typeof 我们在上一章详细的介绍过,如果忘记了可以去看一下。

5. new运算符

 比如说我们创建一个函数构造器:function Foo(){}

 Foo.prototype.x = 1;

 我们可以用new运算符就可以创建一个对象obj

 var obj = new Foo();

 这样obj.x;  //1 我们就可以从它的构造器上的prototype属性上拿到 1

 我们可以通过 obj.hasOwnProperty("x"); //false 来判断这个属性到底是对象上的还是对象的原型上的

 obj._proto_拿到它的原型,obj._proto_.hasOwnProperty("x");  //true 说明是原型上的

6.this 运算符。

  this; //window(浏览器)
  var obj = {
  func:function(){
  return this;
 }
 }
obj.func(); // obj

this运算符也是比较特殊的这个我们后面会详细讲。

7.void运算符。

 void 0 //undefined
 void (0) //undefined

 void无论后面的操作数是多少,返回的都是undefined。

8.运算符的优先级,也是建议大家去看一下,更有助于大家读懂复杂的表达式。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# js  # 表达式  # 运算符  # JavaScript 中的运算符和表达式介绍  # JS运算符优先级与表达式示例详解  # js表达式与运算符简单操作示例  # 浅析JS中常用类型转换及运算符表达式  # 详解JavaScript的表达式与运算符  # Javascript核心读书有感之表达式和运算符  # js利用与或运算符优先级实现if else条件判断表达式  # JavaScript 中的运算符和表达式介绍(二)  # 我们可以  # 可以用  # 去看  # 创建一个  # 就可以  # 称之为  # 都是  # 是一个  # 一个函数  # 会有  # 是指  # 这就  # 想知道  # 才可以  # 如果没有  # 在上  # 一章  # 读懂  # 计算出 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Firefox Developer Edition开发者版本入口  Python文件操作最佳实践_稳定性说明【指导】  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  详解MySQL数据库的安装与密码配置  Python文本处理实践_日志清洗解析【指导】  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  如何在Windows环境下新建FTP站点并设置权限?  Bootstrap CSS布局之列表  怎么用AI帮你设计一套个性化的手机App图标?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  详解jQuery停止动画——stop()方法的使用  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  如何在阿里云购买域名并搭建网站?  三星网站视频制作教程下载,三星w23网页如何全屏?  Laravel如何使用Vite进行前端资源打包?(配置示例)  Python进程池调度策略_任务分发说明【指导】  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  奇安信“盘古石”团队突破 iOS 26.1 提权  HTML 中如何正确使用模板变量为元素的 name 属性赋值  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  如何在阿里云部署织梦网站?  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  php485函数参数是什么意思_php485各参数详细说明【介绍】  如何撰写建站申请书?关键要点有哪些?  如何在景安服务器上快速搭建个人网站?  微信小程序 配置文件详细介绍  nginx修改上传文件大小限制的方法  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  JavaScript如何实现路由_前端路由原理是什么  b2c电商网站制作流程,b2c水平综合的电商平台?  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  如何快速生成可下载的建站源码工具?  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  制作公司内部网站有哪些,内网如何建网站?  如何在阿里云通过域名搭建网站?  如何挑选最适合建站的高性能VPS主机?