计科大三学生javascript学习笔记以及避坑指南

javascript学习笔记以及避坑指南@TOC

**

javascript笔试必须掌握的知识*

1,关于自增符
一元后自增符(a=0++) ,## 标题返回值为(0),值自增(a=1)。
一元后自增符(a=++0),返回值为(1),值自增(a=1)。

**2,**除了基本对象(base object),所有的对象都有原型,基本对象可以访问一些方法和属性,比如 .toString。这就是为什么你可以使用内置的 JavaScript 方法,所有这些方法在原型上都是可用的。虽然 JavaScript 不能直接在对象上找到这些方法,但 JavaScript 会沿着原型链找到它们,以便于你使用。

3,javascript中有6种数据类型,其中有五种基本数据类型(也称简单数据类型):Undefined.Null.Boolean.Number和String.还有一种复杂数据类型–Object。Object本质上是由一组无序的名值对组成的。ECMAScript不支持任何创建自定义类型的机制,而所有值最终都将是上述6种数据类型之一。

4,关于真值与假值
| 数据类型 |转换成Boolean值 |
|undefined | false |
|null | false
|Boolean值|true是true,false是false |
|数字 |0和NaN是false,其他是true|
|字符串 | 空字符串为false,其他为true |
|对象 |所有对象都是true(包括空对象)|

5,两个对象的比较
通过它们的引用(reference)进行比较。JavaScript 检查对象是否具有对内存中相同位置的引用。如果引用位置不等那么无论值是否一样都是返回False。

6.声明变量前,使用 “use strict”,你可以确保不会意外地声明全局变量。

7.对于箭头函数,如果只返回一个值,我们不必编写花括号。但是,如果您想从一个箭头函数返回一个对象,您必须在圆括号之间编写它,否则不会返回任何值!

8,关于函数声明,他的一个重要特征就是函数声明提升(function declaration hoisting),意思是在执行代码之前会先读取函数声明。这就意味着可以把函数声明放在调用他的语句后面。
javascript
sayHi();
function sayHi(){
alert(“hi!”);}
函数表达式:function functionName(arg0,arg1,arg2){//函数体}
9,匿名函数 var functionName = function(arg0,arg1,arg2){
函数体};匿名函数(anonymous function 也称拉姆达函数)不具备函数提升特征。

10,递归函数递归函数是在一个函数通过名字调用自身的情况瞎构成的,递归函数内部调用函数本身一般用arguments.callee代替本身的函数名,arguments.callee是一个指向正在执行的函数的指针。
但是严格模式下不能使用arguments.callee,可以使用命名函数表达式来达成相同的结果。

11,闭包
闭包是指有权访问另一个函数作用域中的变量的函数,要完全了解闭包必须先理解作用域,作用域本质上是一个指向变量对象的指针列表,它只引用但不实际包含变量对象。(创建函数时,会创建一个预先包含全局变量对象的作用域链,这个作用域链被保存在内部的[[Scope]]属性中,当调用函数时,会为函数创建一个执行环境,然后通过复制函数的[[Scope]]属性中的对象构建起执行环境的作用域链。之后又有一个活动对象(这里作为变量对象使用)被创建并被推入执行环境作用域的前端。)

12,关于this对象
this 对象是在运行时基于函数的执行环境绑定的:在全局函数中,this等于windows,而当函数被作为某个对象的方法调用时,this等于那个对象。不过匿名函数具有全局性,因此其this对象指向windows.
13,模仿块级作用域
将函数声明转换成函数表达式,就是在函数外加一个圆括号即可。
(function(){
//块级作用域
})();
14,私有变量
js中没有私有成员的说法,但是有私有变量的说法,任何在函数中定义的变量都是私有变量,因为不能在函数外部访问这些变量。
我们把有权访问私有变量和私有函数的共有方法称为特权方法

DOM2和DOM3
DocumentType类型新增了3个属性:publicId,systemId和internalSubset.Document类型中与命名空间无关的的方法是importNode(),可以无视ownerDocument限制,将一个文档添加到另一个文档中,DOM3为DOM节点增加额外数据引入新方法。其中,setUseData方法会将数据指定给节点,接受三个参数:要设置的键,实际的数据(可以是任何数据类型)和处理函数。
document.body.setUserData(“name”,“mike”,function(){});
访问框架文档:无法通过元素直接访问框架文档对象。
DOM样式属性和方法
事件
事件就是文档或浏览器窗口中发生的一些特定的交互瞬间,事件流描述的是从页面中接受事件的顺序(冒泡和捕获);
处理指定和删除事件处理程序的操作:addEventListener()和removeEventListener();
JSON
JSON是javascript的一个严格的子集,利用了javascript中的一些模式来表示结构化数据。
JSON不支持undefined数据类型。
JSON不支持变量·函数,或对象实例,他就是一种表示结构化数据的的格式。
JSON字符串必须使用双引号。
JSON对象有两个方法
stringify()和parse().在最简单的情况下,这两个方法分别用于把javascript对象序列化为JSON字符串和把JSON字符串解析为原生javascript值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值