JavaScript中字面量与函数的基本使用知识


Posted in Javascript onOctober 20, 2015

JavaScript 字面量
在编程语言中,一个字面量是一个常量,如 3.14。
数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e)。

3.14

1001

123e5

字符串(String)字面量 可以使用单引号或双引号 be written with double or single quotes:

"John Doe"

'John Doe'

表达式字面量 用于计算:

5 + 6

5 * 10

数组(Array)字面量 定义一个数组:

[40, 100, 1, 5, 25, 10]

对象(Object)字面量 定义一个对象:

{firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}

函数(Function)字面量 定义一个函数:

function myFunction(a, b) { return a * b;}

JavaScript 函数定义
JavaScript 使用关键字 function 定义函数。
函数可以通过声明定义,也可以是一个表达式。
函数声明
在之前的教程中,你已经了解了函数声明的语法 :

function functionName(parameters) {
 执行的代码
}

函数声明后不会立即执行,会在我们需要的时候调用到。
实例

function myFunction(a, b) {
  return a * b;
}

Note 分号是用来分隔可执行JavaScript语句。
由于函数声明不是一个可执行语句,所以不以分号结束。

函数表达式
JavaScript 函数可以通过一个表达式定义。
函数表达式可以存储在变量中:
实例

var x = function (a, b) {return a * b};

在函数表达式存储在变量后,变量也可作为一个函数使用:
实例

var x = function (a, b) {return a * b};
var z = x(4, 3);

以上函数实际上是一个 匿名函数 (函数没有名称)。
函数存储在变量中,不需要函数名称,通常通过变量名来调用。
Note 上述函数以分号结尾,因为它是一个执行语句。

Function() 构造函数
在以上实例中,我们了解到函数通过关键字 function 定义。
函数同样可以通过内置的 JavaScript 函数构造器(Function())定义。
实例

var myFunction = new Function("a", "b", "return a * b");

var x = myFunction(4, 3);

实际上,你不必使用构造函数。上面实例可以写成:
实例

var myFunction = function (a, b) {return a * b}

var x = myFunction(4, 3);

Note 在 JavaScript 中,很多时候,你需要避免使用 new 关键字。

函数提升(Hoisting)
在之前的教程中我们已经了解了 "hoisting(提升)"。
提升(Hoisting)是 JavaScript 默认将当前作用域提升到前面去的的行为。
提升(Hoisting)应用在变量的声明与函数的声明。
因此,函数可以在声明之前调用:

myFunction(5);

function myFunction(y) {
  return y * y;
}

使用表达式定义函数时无法提升。
自调用函数
函数表达式可以 "自调用"。
自调用表达式会自动调用。
如果表达式后面紧跟 () ,则会自动调用。
Y不能自调用声明的函数。
通过添加括号,来说明它是一个函数表达式:
实例

(function () {
  var x = "Hello!!";   // 我将调用自己
})();

以上函数实际上是一个 匿名自我调用的函数 (没有函数名)。
函数可作为一个值使用
JavaScript 函数作为一个值使用:
实例

function myFunction(a, b) {
  return a * b;
}

var x = myFunction(4, 3);

JavaScript 函数可作为表达式使用:
实例

function myFunction(a, b) {
  return a * b;
}

var x = myFunction(4, 3) * 2;

函数是对象
在 JavaScript 中使用 typeof 操作符判断函数类型将返回 "function" 。
但,JavaScript 函数描述为一个对象更加准确。
JavaScript 函数有 属性 和 方法。
arguments.length 属性返回函数调用过程接收到的参数个数:
实例

function myFunction(a, b) {
  return arguments.length;
}

toString() 方法将函数作为一个字符串返回:
实例

function myFunction(a, b) {
  return a * b;
}

var txt = myFunction.toString();

Javascript 相关文章推荐
深入理解jQuery中live与bind方法的区别
Dec 18 Javascript
实例讲解JavaScript中instanceof运算符的用法
Jun 08 Javascript
switch语句的妙用(必看篇)
Oct 03 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
Jan 21 Javascript
addEventListener()与removeEventListener()解析
Apr 20 Javascript
Vue学习笔记进阶篇之函数化组件解析
Jul 21 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
Nov 07 Javascript
微信小程序公用参数与公用方法用法示例
Jan 09 Javascript
微信小程序云开发如何使用云函数生成二维码
May 18 Javascript
vue实现简易的双向数据绑定
Dec 29 Vue.js
JavaScript实现前端倒计时效果
Feb 09 Javascript
解决vue $http的get和post请求跨域问题
Jun 07 Vue.js
JavaScript基本的输出和嵌入式写法教程
Oct 20 #Javascript
javascript省市级联功能实现方法实例详解
Oct 20 #Javascript
基于JavaScript实现移动端TAB触屏切换效果
Oct 20 #Javascript
js点击文本框后才加载验证码实例代码
Oct 20 #Javascript
javascript实现状态栏中文字动态显示的方法
Oct 20 #Javascript
基于jQuery实现的扇形定时器附源码下载
Oct 20 #Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
Oct 20 #Javascript
You might like
Centos PHP 扩展Xchche的安装教程
2016/07/09 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
2017/06/09 PHP
判断iframe是否加载完成的完美方法
2010/01/07 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
2017/02/06 Javascript
图片加载完成再执行事件的实例
2017/11/16 Javascript
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
微信小程序API—获取定位的详解
2019/04/30 Javascript
原生JS实现相邻月份日历
2020/10/13 Javascript
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
[03:11]不朽宝藏三外观展示
2020/09/18 DOTA
rhythmbox中文名乱码问题解决方法
2008/09/06 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
Python 用Redis简单实现分布式爬虫的方法
2017/11/23 Python
python使用Pycharm创建一个Django项目
2018/03/05 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
2020/02/26 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
2020/06/15 Python
python七种方法判断字符串是否包含子串
2020/08/18 Python
如何利用python生成MD5并去重
2020/12/07 Python
详解python的变量缓存机制
2021/01/24 Python
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
HTML5标签大全
2016/11/23 HTML / CSS
One.com挪威:北欧成长最快的网络托管公司
2016/11/19 全球购物
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
数据库面试要点基本概念
2013/10/31 面试题
升旗仪式主持词
2014/03/19 职场文书
奥利奥广告词
2014/03/20 职场文书
本科生导师推荐信范文
2014/05/18 职场文书
2014年银行年终工作总结
2014/12/19 职场文书
2015年入党决心书
2015/02/05 职场文书
社区重阳节活动总结
2015/03/24 职场文书
实践论读书笔记
2015/06/29 职场文书
PyTorch 如何自动计算梯度
2021/05/23 Python