javascript高级(1)

来源:互联网 发布:nicelabel数据库 编辑:程序博客网 时间:2024/05/18 00:14


1,解释型  vs  编译型


解释型,php  javascript 解释型,就是先翻译成计算机能够认识的二进制语言,解释一行代码就执行,

编译型 语言:先把代码翻译成计算机能够认识的语言之后,要生成一个二进制文件,exe,以后等再去执行代码的时候就

为什么可以先调用函数,后定义函数
从变量作用域和函数执行的过程综合考虑,在代码解释的过程中,因为我们可以在函数定义之前就调用这个函数,说明我们在解释代码的过程中就已经将函数的定义告知我们的javascript解析器,在告知javascript解析器的过程中,会将javascript的所有的局部变量同时告知javascript解析器,但是并不是使用真实的值,而是全部设置为undefined

var v1 = 'global';
function f1() {
    alert(v1);//undefined?
    var v1 = 'function';
    alert(v1);//function?
}
f1();
alert(v1);//global?


数据类型

(1)基本数据类型(原始数据类型)

1,Undefined

undefined  声明了但是没有初始化的变量就是undefined,声明就是告诉浏览器我存在一个变量,初始化就是第一次给他赋值,undefined数据类型就一个值,就是undefined,如果我们使用一个没有声明的变量会导致执行错误,undefined就是一个值,但是强制类型转化时被转成false

2,Null

null 数据类型也是只有一个值,null代表尚未定义的对象,通过typeof获得就是一个对象
如果一个变量的值什么都没有,就是undefined,如果一个对象什么都没有就是null
3,Boolean

Boolean  true  or false

4,Number

Number 数值类型整数和小数都是数值类型,整型占4个字节,浮点型占8个字节
 NaN,不是一个数值,isNaN()
可以输出,说明NaN是一个值,数值类型

5,String


(2)引用数据类型(对象数据类型)


这种数据类型之间采用引用传递,
Javascript中的对象就是一系列属性的集合
在javascript中函数也是数据类型,我们可以定义一个变量保存这个值,值就是函数体

1,数组也是对象,直接输出数组时会在对象内部存在将一个对象转化为字符串的方法,
 var a1 = ['a','b','c'];
 var a2 = a1;
 a1.push('d');
 alert(a2);

2,系统默认存在几个对象,Math,Array,String

3,特殊运算符[]
操作数组下标,或者 对象的属性
 var o1 = new Object();
 o1.name = 'admin';
 o1.age = '26';
 o1.gender = 'male';
 for(var p in o1){
  //alert(p);
  //但是我想获得属性值
  //下面输出逻辑上是输出o1对象的属性,但是o1没有p这个属性,但是我们可以通过[]来操作对象的属性
  //alert(o1.p);
  alert(o1[p]);
 }

原创粉丝点击