JavaScript滴水穿石

 脚本编写;基于对象;简单性;安全性;动态;跨平台
 唯一能判断NaN的方法是通过isNaN()函数:

	isNaN(NaN); // true 
 for …in+对象
with 加对象 
this代表当前作用域对象的引用
 跨域解决办法:
	1. 通过jsonp跨域
	2. 通过代理跨域:即新建一个本地的PHP获取跨域的PHP的返回值
	3. nodejs中间件代理跨域
	4. WebSocket协议跨域
	5. 在PHP表头添加"header('Access-Control-Allow-Origin:*');  "
• jQuery对象转化为DOM对象:
	○ var $v=$(''#v);//$v JQuery 对象
	○ var v=$v[0];//v:DOM对象
	○ var v=$v.get(0);//v DOM对象
• DOM 对象转化为jQuery对象
	○ var v=document.getElementById('v');//v:DOM对象
	○ var $v=$(v);//$v JQuery 对象
• JS按照存储方式区分变量类型:引用类型、值类型
• 值类型:变量不同,内存值不同:
	var a=100; var b=a; a=200; => b=100;
• 引用类型:变量指向其指针:
	var a={age:20};var b=a; b.age=21;=>a.age=21;
	○ 对象、数组、函数
• 判断一个变量会被当做true或false:
	var a=100; console.log(!!a);
• json只不过是JS的一个对象
	○ JSON.stringfy( {a:10,b:20} ):把对象转化为字符串
	○ JSON.parse( ' {"a":10,"b":20}' ):把字符串转化为对象
• var a={}其实是var a=new Object()的语法糖
• var a=[]其实是var a=new Array()的语法糖
• function Foo(){…}其实是var Foo=new Function(…)
• 使用instanceof判断一个函数是否是一个变量的构造函数
	○ f instanceof Foo 的逻辑判断:
		f 的__proto__一层一层向上,能否对应到Foo.prototype
• 原型规则和示例
	○ 所有的引用类型(数组、对象、函数),都具有对象特性,即 可自由扩展属性(除了"null"意外)
	○ 所有的引用类型(数组,对象,函数),都有一个__proto__(隐式原型)属性,
	属性值是一个普通对象("null"意外)
	○ 所有的函数,都有一个prototype(显式原型)属性,属性值也是一个普通的对象
	○ 所有的引用类型(数组,对象,函数),__proto__属性值指向(完全等于)它的构造函数的"prototype"属性值
	○ 当试图得到一个引入类型(数组,对象,函数)的某个属性时,如果这个对象本身没有这个属性,那么会从它的__proto__(即它的构造函数的prototype)中寻找
• 函数Object.prototype 的__proto__为'null',(这是JS为了防止出现死循环而特殊定义的)
• 函数如果没有return语句,函数执行完毕后也会返回结果,为undefined
• JavaScript关键字arguments,只在函数内部起作用,并且永远指向当前函数的所有参数
• JavaScript会提升变量的声明至函数顶部,但不会提升变量的赋值
• JS this原理
	 情况1:如果一个函数中有this,但是它没有被上一级的对象所调用,那么this指向的就是window,这里需要说明的是在js的严格版中this指向的不是window,但是我们这里不探讨严格版的问题,你想了解可以自行上网查找。
	
	  情况2:如果一个函数中有this,这个函数有被上一级的对象所调用,那么this指向的就是上一级的对象。
	
	  情况3:如果一个函数中有this,这个函数中包含多个对象,尽管这个函数是被最外层的对象所调用,this指向的也只是它上一级的对象
	
	this永远指向的是最后调用它的对象,也就是看它执行的时候是谁调用的
	但是:
	箭头函数完全修复了this的指向,this总是指向词法作用域,也就是外层调用者obj
• 闭包:就是携带状态的函数,它的状态可以完全对外隐藏起来。
	○ 返回闭包时,牢记返回函数不要引入任何循环变量,或者后续会发生变化的变量
	○ 闭包可以把多参数的函数变成单参数的函数
	
• 将JSON字符串转换成JSON对象 JSON.parse()
将JSON对象转换成JSON字符串 JSON.stringify()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值