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作者John Resig自己封装的javascript 常用函数
Nov 09 Javascript
JavaScript写的一个自定义弹出式对话框代码
Jan 17 Javascript
原生javascript兼容性测试实例
Jul 01 Javascript
在js中做数字字符串补0(js补零)
Mar 25 Javascript
JS实现身份证输入框的输入效果
Aug 21 Javascript
一个简易时钟效果js实现代码
Mar 25 Javascript
聊聊JS动画库 Velocity.js的使用
Mar 13 Javascript
javascript实现前端成语点击验证优化
Jun 24 Javascript
Node.js中出现未捕获异常的处理方法
Jun 29 Javascript
原生js canvas实现鼠标跟随效果
Aug 02 Javascript
浅谈vant组件Picker 选择器选单选问题
Nov 04 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
Jan 13 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
Thinkphp事务操作实例(推荐)
2017/04/01 PHP
简单实现php上传文件功能
2017/09/21 PHP
javascript 写类方式之六
2009/07/05 Javascript
在Linux上用forever实现Node.js项目自启动
2014/07/09 Javascript
jQuery的text()方法用法分析
2014/12/20 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
浅谈vue路径优化之resolve
2017/10/13 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
vue中使用element-ui进行表单验证的实例代码
2018/06/22 Javascript
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
Angular(5.2->6.1)升级小结
2018/12/27 Javascript
小程序Request的另类用法详解
2019/08/09 Javascript
JS中FormData类实现文件上传
2020/03/27 Javascript
Threejs实现滴滴官网首页地球动画功能
2020/07/13 Javascript
Python类方法__init__和__del__构造、析构过程分析
2015/03/06 Python
Python实现单词翻译功能
2017/06/06 Python
浅谈使用Python内置函数getattr实现分发模式
2018/01/22 Python
python range()函数取反序遍历sequence的方法
2018/06/25 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
Python使用matplotlib 画矩形的三种方式分析
2019/10/31 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
GOOD AMERICAN官网:为曲线性感而设计
2017/12/28 全球购物
拉斯维加斯城市观光通行证:Las Vegas Pass
2019/05/21 全球购物
Java程序员面试题
2013/07/15 面试题
大学同学聚会邀请函
2014/01/19 职场文书
活动志愿者自荐信
2014/01/27 职场文书
社区优秀志愿者材料
2014/02/02 职场文书
火车来了教学反思
2014/02/11 职场文书
2014年人事部工作总结
2014/12/03 职场文书
百家讲坛观后感
2015/06/12 职场文书
《分一些蚊子进来》读后感3篇
2020/01/09 职场文书