Basic knowledge of javaScript (keep for myself)
1. 函数表达式
JavaScript 函数可以通过一个表达式定义。eg. var x = function (a, b) {return a * b};
so: var x = function (a, b) {return a * b};
var z = x(4, 3);
以上函数实际上是一个 匿名函数 (函数没有名称)。
函数存储在变量中,不需要函数名称,通常通过变量名来调用。
2. 在 JavaScript 中,很多时候,你需要避免使用 new 关键字。
3. 函数提升(Hoisting): 实际上是指扩展作用域。定义可在使用之后
4. 自调用函数: 实际上是匿名自我调用的函数
eg.
<script>
(function () {
document.getElementById("demo").innerHTML = "Hello! 我是自己调用的";
})();
</script>
5. 函数是对象:
在 JavaScript 中使用 typeof 操作符判断函数类型将返回 "function" 。
但,JavaScript 函数描述为一个对象更加准确。
6. JavaScript 函数有个内置的对象: arguments 对象.它包含了函数调用的参数数组。
7. 值传递参数:不会修改参数初始值;对象传递参数:类似引用,可作用于函数外部。
8. JavaScript中的函数调用还是有点儿说道的:分4种方法进行调用
(1) 作为一个函数直接调用
eg.
function myFunction(a, b) {
return a * b;
}
myFunction(10, 2); // myFunction(10, 2) 返回 20
此时类似于:
function myFunction(a, b) {
return a * b;
}
window.myFunction(10, 2); // window.myFunction(10, 2) 返回 20
原因:以上函数并未指定对象,但属于整个HTML页面,所以说属于全局对象,即属于浏览器中的window对象。
虽然这种函数调用的方式比较常用,但并不是好的编程习惯,会容易造成命名冲突。
当函数没有被自身的对象调用时, this 的值就会变成全局对象。
(2)将函数作为对象中的方法调用(类似java中的对象)
eg.
var myObject = {
firstName:"John",
lastName: "Doe",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
myObject.fullName(); // 返回 "John Doe"
此时,实例中 this 的值为 myObject 对象。
(3)使用构造函数调用函数
如果函数调用前使用了 new 关键字, 则是调用了构造函数。
构造函数的调用会创建一个新的对象。新对象会继承构造函数的属性和方法。
(4)利用apply()和call()方法调用函数
理由:在JavaScript中,函数也是对象,也拥有属性和方法。也就是说,可以利用函数对象中的apply()方法或者call()方法调用函数对象。
eg.
function myFunction(a, b) {
return a * b;
}
myFunction.call(myObject, 10, 2); // 返回 20
myArray = [10,2];
myFunction.apply(myObject, myArray); // 返回 20
在 JavaScript 严格模式(strict mode)下, 在调用函数时第一个参数会成为 this 的值, 即使该参数不是一个对象。
在 JavaScript 非严格模式(non-strict mode)下, 如果第一个参数的值是 null 或 undefined, 它将使用全局对象替代。
9. 在JavaScript中,若变量在声明时没有var关键字,则为全局变量
10. JavaScript 闭包 (??)
Basic knowledge of javaScript (keep for myself)的更多相关文章
- Review: Basic Knowledge about JavaScript 1
JavaScript shanzm
- NLP related basic knowledge with deep learning methods
NLP related basic knowledge with deep learning methods 2017-06-22 First things first >>> ...
- Python基础知识(Basic knowledge)
Python基础知识(Basic knowledge) 1.认识Python&基础环境搭建 2.Python基础(上) 3.Python基础(中) 4.Python基础(下) 5.Python ...
- [SLAM] 01 "Simultaneous Localization and Mapping" basic knowledge
发信人: leecty (Terry), 信区: ParttimeJobPost标 题: 创业公司招SLAM 算法工程师发信站: 水木社区 (Thu Jun 16 19:18:24 2016), 站内 ...
- Basic knowledge of html (keep for myself)
1. 通常标签 <strong> 替换加粗标签 <b> 来使用, <em> 替换 <i>标签使用. 2. 在 <head>元素中你可以插入脚 ...
- 计算机基础知识 一 Basic knowledge of computers One
计算机硬件由CPU(Central Processing Unit).存储器.输入设备.输出设备组成. CPU通常由控制单元(控制器)和算数逻辑单元(运算器)组成. 运算器:负责进行算数运算和逻辑运算 ...
- Android Studio accelerator key(shortcut)& Basic knowledge
shift + F6 重构(选文件,ok->下面的控制台,do refactor option + return 快速修复 Activity@Extra() Intent: @FragmentA ...
- NoSql basic knowledge
The big picture to keep in mind first is: There are lots of articles and resources out there: http:/ ...
- [Tango] Basic Knowledge
Project Tango类设备能够给开发者在哪些领域带来机会. 室内导航*:室内GPS信号的缺失,使得Project Tango设备会成为室内导航重要应用场景之一.有了它,你就不会在不熟悉的室内商场 ...
随机推荐
- HTTP首部及各状态码
通用首部:客户端和服务器都可以使用的通用首部,比如Status Code: 请求首部:请求首部是请求报文特有的,它们为服务器提供了一些额外信息,例如Accept: */* 用来告知服务器客户端会接受与 ...
- php如何实现页面回退的两种方法
发布:thatboy 来源:网络 [大 中 小] 你有没有遇到过这样的情况:表单出错而返回页面时,之前填写的信息全不见了.本文为大家介绍二种支持php页面回退的方法,供大家参考. 本文原始链接: ...
- C++列出完数
题目内容:自然数中,完数寥若晨星,请在从1到某个整数范围中打印出所有的完数来.所谓“完数”是指一个数恰好等于它的所有不同因子之和.例如,6是完数,因为6=1+2+3.而24不是完数,因为24≠1+2+ ...
- (转)C#与Java的证书密钥转换
前言 最近由于项目需求,服务端由c#编写,客户端由java编写.通信数据使用RSA非对称加密.但是java和c#生成的密钥格式是不一样的,所以需要转换格式才可以正常使用.网上搜到使用java进行格式转 ...
- 清理sql2000查询分析器登录名记录
注册表 HKEY_CURRENT_USER/Software/Microsoft/Microsoft SQL Server/80/Tools/Client/PrefServers
- Python超简单的HTTP服务器
Python超简单的HTTP服务器 安装了python就可以 python -m SimpleHTTPServer 执行这一个命令即可实现一个HTTP服务器,将当前目录设为HTTP服务目录,可以通过h ...
- sftp
SFTP 为 SSH的一部分,是一种传输档案至 Blogger 伺服器的安全方式.其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文 ...
- Percona-Xtrabackup 2.3.3 慢查询不再堵塞备份(一)
在Percona-Xtrabackup 2.3.3[root@b28-19-17 bak]# rpm -q percona-xtrabackuppercona-xtrabackup-2.3.3-1.e ...
- iOS学习之C语言分支结构
一.BOOL类型 返回值:真:YES 假:NO 定义一个布尔类型的变量 YES == 1, NO == 0 计算机在识别时,YES就替换成1,NO就替换成0 BOOL isGirl = YES; ...
- 用telnet和php的curl库测试http
一.telnet测试http telnet简介 Telnet协议是TCP/IP协议族的其中之一,是Internet远端登录服务的标准协议和主要方式,常用于网页服务器的远端控制,可供使用者在本地 ...