`
alex09
  • 浏览: 969366 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

深入浅出的JavaScript 面向对象的特性

阅读更多
javascript 王者归来

javascript不支持函数或方法的重载,只会覆盖
function add(number)
{
   alert(number + 10);
}
function add(number)
{
   alert(number + 20);
}
add(20);   // 40

javascript中,函数就是对象,JavaScript中有个内置的对象Function
因为定义一个add方法时相对于
var add = new Function("number","alert('hello')");
var add = new Function("number","alert('world')");

所以后面的覆盖了前面的,所以没有重载

javascript是动态语言,不是编译语言,是解释语言

NaN  not a number
函数中都有一个内置对象arguments
alert(add.length);    //期望的参数长度
函数就是对象

JavaScript中有五种原始值:Undefined,Null,Boolean,Number,String
java中有8中基本数据类型:                 
byte    b;  1字节              
short   s;  2字节              
int     i;  4字节              
long    l;  8字节              
char    c;  2字节(C语言中是1字节)
float   f;  4字节              
double  d;  8字节              
boolean bool;  false/true       

Undefined数据类型的值只有一个:undefined
var s;
alert(s);  //undefined。

Null数据类型的值只有一个:null
alert(typeof null);   //object   

Boolean数据类型的值只有两个:true,false

typeof的返回值有五个:undefined,boolean,number,string,object

对于函数来说,如果其不返回值,那么其返回值就为undefined
function test()
{
  alert("");
}
alert(test());    //undefined   没有返回值
alert(test);      //打印函数的源代码


var s ;
alert(s);      //undefined
alert(s2);     //s2没有定义,报错

var s ;
alert(typeof s);      //undefined
alert(typeof s2);     //undefined
//null与undefined的关系: undefined实际上从null派生而来
alert(undefined == null)



javascript会出现内存泄漏,客户端内存泄漏。所以在函数中都要加入var,防止内存泄漏

强制转换有三种:Boolean(value),Number(value),String(value)


Object所有类的父类
o.name = "langsin";
delete o.name;

js的作用域(对于函数定义中的变量来说,加var表示局部变量,不加var表示全局变量在javascript中没有块级别的作用域)

function test()
{
   s = "hello";
}
test();
alert(s);   //hello

function test()
{
   var s = "hello";
}
alert(s);   // s没有定义, 


//js的作用域
function f(props) {   
    for(var i=0; i<10; i++) {}   
    alert(i);         //10  虽然i定义在for循环的控制语句中,但在函数   
                      //的其他位置仍旧可以访问该变量.   
    if(props == "local") {   
        var sco = "local";   
    alert(sco);    
    }   
    alert(sco);       //同样,函数仍可引用if语句内定义的变量   
}   
f("local");      //10  local   local  

var sco = "global";   
function print1() {   
    alert(sco);   //global   
}   
function print2() {   
    var sco = "local";   
    alert(sco);   //local   
}   
function print3() {   
    alert(sco);   //undefined   
    var sco = "local";    
    alert(sco);   local   
}   
  
print1();  //global   
print2();  //local   
print3();  //undefined  local 

前面两个函数都很容易理解,关键是第三个:第一个alert语句并没有把全局变

量"global"显示出来,而是undefined,这是因为在print3函数中,我们定义了sco局部变量(不管位置在何处),那么全局的
sco属性在函数内部将不起作用,所以第一个alert中sco其实是局部sco变量,相当于:
function print3() {   
    var sco;   
    alert(sco);   
    sco = "local";   
    alert(sco);   
}  

从这个例子我们得出,在函数内部定义局部变量时,最好是在开头就把所需的变量定义好,以免出错。

var scope = "global"   //定义全局变量   
function print() {   
    alert(scope);   
}   
function change() {   
    var scope = "local";  //定义局部变量   
    print();              //虽然是在change函数的作用域内调用print函数, 

  
                          //但是print函数执行时仍旧按照它定义时的作用域起作用   
}   
change();    //golbal  


整理的比较乱
分享到:
评论

相关推荐

    深入浅出ES6 简体中文

    幸而我有意弱化了对新信息的执念,开始做一些事情,《深入浅出ES6》就是其中一件。 纵观整个系列,亦即纵观ECMAScript 2015的整个体系,吸取了诸多成功经验:借鉴自CoffeeScript的箭头函数;始于C++项目Xanadu,接着...

    javascript高级教程

    全书从JavaScript语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax与Comet服务器端通信,HTML5表单、媒体、Canvas(包括WebGL)及Web Workers、地理定位、跨文档传递...

    JavaScript 高级程序设计非扫描版

    全书从 JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向 对象编程、Ajax 与 Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括 WebGL)及 Web Workers、 地理定位、...

    JavaScript内核知识

    作者深入浅出的描绘了javascript函数式语言的一系列特性,闭包,面向对象的各种实现以及弊端以及Javascript的2个大重要对象,函数和数组,认识它们真正的面目。 适合入门级别的新手观看来提升自己的对于Javascript的...

    js高级程序设计第三版(高清中文含源码压缩)JavaScript 超级畅销书的最新版

    全书从 JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向 对象编程、Ajax 与 Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括 WebGL)及 Web Workers、 地理定位...

    Javascrpt 高级程序设计(第3版)中文文字版

    全书从JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax 与Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括WebGL)及Web Workers、地理定位、跨...

    js高级程序设计第三版(高清中文含源码压缩)

    全书从 JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向 对象编程、Ajax 与 Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括 WebGL)及 Web Workers、 地理定位...

    Javascrpt高级程序设计

    JavaScript 语言实现的各个组成部分——语言核心、 DOM、 BOM、 事件模型讲起, 深入浅出地探讨了面向 对象编程、 Ajax 与 Comet 服务器端通信, HTML5 表单、 媒体、 Canvas(包括 WebGL) 及 Web Workers、 地理...

    Javascrpt 高级程序设计(第3版)英文

    全书从JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax 与Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括WebGL)及Web Workers、地理定位、跨...

    js高级程序设计非扫描

    JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向 对象编程、Ajax 与 Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括 WebGL)及 Web Workers、 地理定位、跨...

    asp.net知识库

    深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象中的私有变量 关于反射中创建类型实例的两种方法 ASP.Net应用程序的多进程模型 NET委托...

    PHP3程序设计

    本书作者是一位经验丰富的程序员,在书中使用了大量的、有一定使用价值的例子来深入浅出地讲解PHP语言及Web编程需要了解的方方面面。尤其值得注意的是,书中使用了多个“中场”章节,以便在学习过一定知识之后,通过...

Global site tag (gtag.js) - Google Analytics