javascript知识点

数据类型

数据类型有 undefined,null,bool,number,string,object和function共七种类型。

typeof运算得到的结果是一个string类型的值,所以使用两次typeof运算符得到的结果一定是string。

有如下几个需要注意,平时经验多积累,以下是在浏览器控制台输入的

typeof undefined
"undefined"
typeof null
"object"
typeof NaN
"number"
typeof Infinity
"number"
NaN !=NaN
true
Infinity/Infinity
NaN
"123" == 123
true

undefined,null,"",0这四个值转换为逻辑值是false,除这四个加上false本身,任何其他东西(包括简单类型、所有对象和函数)转为逻辑值都是true。

这5个值除了undefined == null,其他互不相等。
但要注意

undefined === null
false
"123" === 123
false

对象类型的一个好例子


	var life = {};
	for(life.age = 1;life.age<=3;life.age++){
		switch(life.age){
			case 1:
				life.body = "卵细胞";
				life.say = function(){
					alert(this.age+this.body);
				}
				break;
			case 2:
				life.tail = "尾巴";
				life.gill = "腮";
				life.body = "蝌蚪";
				life.say = function(){
					alert(this.age+this.body+" -"+this.tail+" ,"+this.gill);
				}
				break;
			case 3:
				delete life.tail;
				delete life.gill;
				life.legs = "四条腿";
				life.lung = "肺";
				life.body = "青蛙";
				life.say = function(){
					alert(this.age+this.body+" -"+this.legs+" ,"+this.lung);
				}
				break;
		}
		life.say();
	}

JavaScript执行顺序

注意如下问题,将弹出两次zhanglulu




	
	javascript学习


	


这样才会先弹出huangbaokang,然后再弹出zhanglulu,结论:JavaScript是按段执行的。




	
	javascript学习


	
	


var关键字的注意点




	
	javascript学习


	


输出结果如下:

黄宝康 like 张露露
你的名字undefined
我的名字黄宝康
huangbaokang like zhanglulu
huangbaokang like 张露露

结论:用var修饰在函数内外是两个东西,没有用var修饰,函数内外是一个东西。

访问Javascript内部作用域对象,提供了函数本身,函数的caller属性,this关键字和arguments隐含对象。

如,使用自身


弹出如下:
javascript知识点_第1张图片
函数自身有一个caller属性,表示调用当前函数的上层函数。这就提供了一个可以追溯函数调用来源的线索,特别是对于调试JavaScript来说是不可多得的宝贝。


控制台输出如下:

null
调用者是null
调用者是function huangbaokang(){
		whoCallMe();
	}
 调用者是function zhanglulu(){
		whoCallMe();
	}

arguments对象


this关键字的理解,如下这篇博客讲的很详细
https://www.cnblogs.com/pssp/p/5216085.html?tdsourcetag=s_pcqq_aiomsg

arguments对象转数组的方法 Array.prototype.slice.apply(arguments);

prototype原型


块级作用域问题


Javascript它不支持函数外部的块级作用域。因此,无论是i的值,还是循环过程或者条件逻辑中定义的任何“临时”变量,都会在其所在的块执行后继续存在。把块包含在一个函数中,并直接在代码里调用该函数,后续的变量将变成undefined。


你可能感兴趣的:(javascript)