`
truth99
  • 浏览: 62928 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

javascript 精粹第一篇(对象)

阅读更多

只说一句,使用chrome或firefox执行。


console.log("************************************************************************防止不存在时报错");
var user = {
name2 : "truth99",
"age" : 24,
name : {
first : "lee",
last : "xuehan"
},
sex : "男",
language : "中文",
say : function(message){
alert(message || "哑巴");
}
};
//判断user.name1是否存在,不存在也不会报错,存在获取first
var flag = user.name && user.name.first;
if(flag){
console.log(flag,user.name);
}


console.log("************************************************************************使用“+” String 转换 int");
var str = "32";
var i = +str;
console.log("使用“+”字符串转换数字",i,str);
var str2 = "32dd3";
var i2 = +str2;
var i3 = parseInt(str2);
console.log("但这个不是全能的:"+i2,str2,"有字符就不行了");
console.log("看看parseInt()",i3,str2,"自动截取数字部分");


console.log("************************************************************************原型");
if(typeof Object.beget !== 'function'){
Object.create = function(o){
var F = function(){};
F.prototype = o;
return new F();
};
}
var another_user = Object.create(user);
console.log("原型的name",another_user.name);
another_user.name = "truth";
console.log("重新定义的name",another_user.name);
//原型关系是一种动态的关系。如果添加一个新的属性到原型中,该属性会立即对所有基于该原型创建的对象可见。
user.weight = "130kg";
console.log(another_user.weight);


console.log("************************************************************************枚举");
for(var name in another_user){
if(typeof another_user[name] !== 'function'){
console.log(name+":"+another_user[name]);
}else{
console.log('函数');
console.log(name+":"+another_user[name]);
}
}
//for in 属性名出现的顺序是不确定的,如果想得到正确的顺序就只能使用for


console.log('************************************************************************删除(delete)');
console.log('删除前:',another_user.name);
delete another_user.name;
//删除对象的属性可能会让来自原型链中的属性透现出来。
//删除another_user的 name属性,从而暴露出原型的name属性
console.log('删除后:',another_user.name);


console.log('************************************************************************减少全局变量污染');
console.log('最小化使用全局变量的方法之一是为你的应用只创建一个唯一的全局变量');


未完...见javascript精粹第二篇(函数)
分享到:
评论

相关推荐

    javascript语言精粹 pdf

    了解这些基本数据类型及其用法是学习JavaScript的第一步。操作符如赋值、比较和逻辑操作符则是编写程序逻辑的关键。此外,流程控制语句(如if...else、for、while)帮助我们根据条件执行不同的代码块,实现程序的...

    javascript精粹(源代码).rar

    理解这些基础数据类型是学习JavaScript的第一步。 2. **函数和作用域**:函数是JavaScript中代码的复用单元,可以封装逻辑并作为参数传递。作用域决定了变量的可见性,了解全局作用域和局部作用域的区别对于避免...

    javascript精粹(英文版)

    2. **函数和作用域**:JavaScript的函数不仅仅是代码块,还是第一类对象,可以作为参数传递,也可以作为返回值。书中将详细阐述函数的创建、调用方式,以及作用域规则,特别是函数作用域和块级作用域的区别。 3. **...

    JavaScript语言精粹.修订版---高清版.pdf

    2. **函数**:在JavaScript中,函数不仅是一段可重用的代码块,还是第一类对象(first-class object),这意味着它们可以作为参数传递给其他函数,也可以作为返回值从函数返回。 3. **控制结构**:包括条件语句(if....

    JavaScript精彩网页特效实例精粹(全)

    1. **创建XMLHttpRequest对象**:在JavaScript中,我们可以通过`new XMLHttpRequest()`来创建一个实例。这个对象提供了`open()`、`send()`、`onreadystatechange`等方法,用于设置请求类型、URL和处理数据的回调函数...

    JavaScript语言精粹3

    根据给定的信息,“JavaScript语言精粹3”似乎是一本关于JavaScript编程语言的书籍或教程资料。由于提供的部分内容主要为重复的版权声明与电子书下载站点链接,并没有直接包含具体的技术细节或者章节内容,我们将...

    JavaScript语言精粹_修订版

    2. **函数与闭包**:函数是JavaScript中的第一等公民,可以作为参数传递,也可以作为返回值。闭包是一种特殊的现象,允许函数访问并操作其词法作用域内的变量,即使该函数已经执行完毕。 3. **原型与继承**:...

    JavaScript精彩网页特效实例精粹

    JavaScript是Web开发中不可或缺的一部分,尤其在创建动态和交互性的网页...总的来说,“JavaScript精彩网页特效实例精粹”是一份宝贵的资源,能帮助你更好地理解和运用JavaScript,让你的网页设计更具吸引力和活力。

    JavaScript语言精粹

    - 函数声明与调用:在JavaScript中,函数是第一类公民,可以作为参数传递,也可以存储在变量中。 - 匿名函数与箭头函数:这两种形式的函数提供了更加简洁的语法结构。 #### 三、JavaScript进阶技术 1. **对象与...

    JavaScript语言精粹.rar

    函数在JavaScript中扮演着重要角色,既是第一类公民,也是构造器。你可以将函数赋值给变量,作为参数传递,甚至从其他函数返回。而函数表达式和函数声明是两种不同的方式来定义函数,它们之间有微妙的区别。 原型链...

    JavaScript语言精粹(修订版)

    2. **函数与闭包**:函数是JavaScript中的第一等公民,可以作为值传递,也可以作为参数和返回值。闭包是JavaScript的一个重要特性,它允许函数访问并操作外部作用域的变量,即使该函数在其外部作用域已经执行完毕。 ...

    js-高性能JavaScript-JavaScript语言精粹修订版

    #### 一、《高性能JavaScript》 **知识点概述:** 1. **性能优化基础知识:** - 了解JavaScript引擎的工作原理及其对性能的影响。 - 学习如何通过代码结构和组织来提高执行效率。 2. **DOM操作与优化:** - ...

Global site tag (gtag.js) - Google Analytics