js基础知识:表达式
一、什么是表达式?
我理解的“表达式”:程序执行到1个“表达式”时,会返回1个值到这个“表达式”所在的位置。
var a = 10 , b = 20; // 这是初始化变量 console.log(a+b); // 计算变量a、b的值(标识符解析),然后返回两者的值到其所在位置。那么就相当于console.log(10+20)
二、常见的几种表达式
(一)原始表达式
1.直接量(字面量)
123 // 数字
'hola' // 字符串
2.JavaScript的保留字
“保留字”就是在程序中有特殊意义的标识符,程序员不能使用它们作为变量了。
true; // 布尔值
this; // 函数的调用上下文
3.变量
var a = 10; alert(a); // 计算变量a的值,返回1个10,然后将10传入alert函数。
(二)数组表达式、对象表达式
数组表达式就是1个新创建的数组。
[1,2,3,4]; // 创建1个数组。
和数组表达式一样,对象表达式就是新建1个对象。
{x:1, y:2}; // 创建1个对象
(三)函数表达式
创建1个函数,可以采用函数声明的方式,也可以采用函数表达式的方式。函数表达式就是创建1个函数,将它的引用保存在1个变量中。
var foo = function(a){ return '传进来的实参是:' + a; }; // 创建1个匿名的函数,它的引用保存在变量foo中。
(四)属性访问表达式
属性访问表达式有2种语法:
1.“表达式.标示符”: “表达式”需要是1个对象,而“标示符”必须是对象已经存在的属性。
var obj = {x:1, y:2}; console.log(obj.x); // obj.x返回obj对象中的x属性,1。
2.“表达式[表达式]”:第1个“表达式”同样需要是1个对象,而第2个“表达式”的值可以为:
(1)字符串:那么这就是对象的属性访问or属性设置。
对象的属性访问:
var obj = {x:1, y:2}; console.log(obj['x']); // 访问obj对象中x属性的值,返回1。
对象的属性设置(给1个属性赋值):
var obj = {x:1, y:2}; obj['z'] = 3; console.log(obj); // { x=1, y=2, z=3}
(2)数字:数组元素访问。
var arr = [1,2,3,4]; console.log(arr[0]); // 访问数组中索引为0的元素,返回1。
(五)函数调用表达式
函数调用表达式就是这样的:“函数名(实参)”。函数调用表达式的返回值,取决于return语句。
1没写return语句:函数调用返回undefined。
function add(x){
x+x;
}
console.log( add(1) ); // 函数没有return语句,函数调用返回undefined。
2.写了return语句,但没写返回值:函数调用返回undefined。
function add(x){
x+x;
return;
}
console.log( add(1) ); // 写了return语句但没有返回值,函数调用返回undefined。
3.写了return语句和要返回的表达式:返回表达式的值。
function add(x){
return x+x;
}
console.log( add(1) ); // 写了return语句,指定了返回值(x+x),所以函数调用返回2。
参考资料:
《JavaScript权威指南》(第6版) 4.1-4.6
js基础知识:表达式的更多相关文章
- JS基础知识笔记
2020-04-15 JS基础知识笔记 // new Boolean()传入的值与if判断一样 var test=new Boolean(); console.log(test); // false ...
- [JS复习] JS 基础知识
项目结尾,空闲时间,又把<JS 基础知识> 这本书过了一遍,温故知新后,很多知其然不知其所以然的内容 豁然开朗. [1. 用于范围的标签] display :inline or bloc ...
- HTML+CSS+JS基础知识
HTML+CSS+JS基础知识 目录 对HTML+CSS+JS的理解 基础知识 对HTML+CSS+JS的理解 基础知识 插入样式表的三种方式 外部样式表:<link rel="sty ...
- Node.js基础知识
Node.js入门 Node.js Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始.比较独特的是,Node.js会假设在POSIX环境下运行 ...
- 网站开发进阶(十五)JS基础知识充电站
JS基础知识充电站 1.javascript alert弹出对话框时确定和取消两个按钮返回值? 用的不是alert对话框,是confirm confirm(str); 参数str:你要说的话或问题: ...
- NodeJs>------->>第三章:Node.js基础知识
第三章:Node.js基础知识 一:Node.js中的控制台 1:console.log.console.info 方法 console.log(" node app1.js 1> ...
- js基础知识温习:Javascript中如何模拟私有方法
本文涉及的主题虽然很基础,在很多人眼里属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题.这里会涉及到对象属性的封装.原型.构造函数.闭包以及立即执行表达式等知识. 公有方法 公有方法 ...
- js基础知识--BOM
之前说过,在js的 运行环境为浏览器时,js就主要有三部分组成: ECMAScript核心语法.BOM.DOM.今天就和大家详细说一下BOM的一些基础知识. BOM BOM通常被称为浏览器对象模型,主 ...
- JS基础知识总结
js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划() ...
- js基础知识总结(2016.11.1)
js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避 ...
随机推荐
- h5 摄像头处理 在线视频
http://www.360doc.com/content/08/0812/03/72059_1533104.shtml http://html5online.com.cn/articles/2012 ...
- Activity之间传递参数(三)
------siwuxie095 传递值对象,即自定义的有数据类型的对象 1.首先 new 一个 class:User,用于创建自定义对象,同时右键 Generate 出 Constructor.se ...
- 实用脚本----Linux下Jdk和Tomcat自动安装shell脚本总结
系统环境为:ubuntu 14.04 一.JDK 自动安装脚本 jdk自动安装bash shell脚本,截止今天(2014/10/15)亲测可用: sudo su #切换到root权限 mkdir / ...
- c语言折半查找
折半查找又称为二分查找,它的前提是线性表中的记录必须是有序的(通常从小到大有序),线性表必须采用顺序存储. 折半查找的基本思想是 : 在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等 ...
- Oracle RMAN 恢复控制文件到指定的路径
Oracle 数据库通过RMAN恢复控制文件到指定的路径 --------------------------------------------------------- 先查询备份集信息,再指定备 ...
- [技巧.Dotnet]轻松实现“强制.net程序以管理员身份运行”。
使用场景: 程序中不少操作都需要特殊权限,有时为了方便,直接让程序以管理员方式运行. (在商业软件中,其实应该尽量避免以管理员身份运行.在安装或配置时,提前授予将相应权限.) 做法: 以C#项目为例: ...
- sprintf()函数,把数字转换成字符串
char str_2[10]; int a=1234321; sprintf(str_2,"%d",a);
- jQuery.ajaxSetup() 函数详解
该函数用于更改jQuery中AJAX请求的默认设置选项.之后执行的所有AJAX请求,如果对应的选项参数没有设置, 将使用更改后的默认设置. //设置AJAX的全局默认选项$.ajaxSetup( { ...
- CAD二次开发---导入外部文件中的块并输出预览图形(五)
思路: 1)首先要定义一个数据库对象来表示包含块的文件,改数据库对象会被加载到内存中,但不会被显示在CAD窗口中. 2)调用Database类的ReadDwgFile函数将外部文件DWG文件读入到新创 ...
- window.innerWidth、document.body.clientWidth和html的大小的区别
首先,我们知道document.body指向的就是body元素,如此,我们就可以以document.body来获取body的大小.何以知之?如下代码: var body = document.quer ...