最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript进阶系列—对象使用和属性

来源:懂视网 责编:小采 时间:2020-11-27 20:25:32
文档

JavaScript进阶系列—对象使用和属性

JavaScript进阶系列—对象使用和属性:对象作为数据类型访问属性删除属性属性名的语法对象使用和属性JavaScript 中所有变量都可以当作对象使用,除了两个例外 null 和 undefined 。false.toString(); // 'false' [1, 2, 3].toString(); // '1,2,3&#
推荐度:
导读JavaScript进阶系列—对象使用和属性:对象作为数据类型访问属性删除属性属性名的语法对象使用和属性JavaScript 中所有变量都可以当作对象使用,除了两个例外 null 和 undefined 。false.toString(); // 'false' [1, 2, 3].toString(); // '1,2,3&#

  • 对象作为数据类型

  • 访问属性

  • 删除属性

  • 属性名的语法

  • 对象使用和属性

    JavaScript 中所有变量都可以当作对象使用,除了两个例外 null 和 undefined 。

    false.toString(); // 'false'
    [1, 2, 3].toString(); // '1,2,3'
    
    function Foo(){}
    Foo.bar = 1;
    Foo.bar; // 1

    一个常见的误解是数字的字面值(literal)不能当作对象使用。这是因为 JavaScript 解析器的一个错误, 它试图将点操作符解析为浮点数字面值的一部分。

    2.toString(); // 出错:SyntaxError

    有很多变通方法可以让数字的字面值看起来像对象。

    2..toString(); // 第二个点号可以正常解析
    2 .toString(); // 注意点号前面的空格
    (2).toString(); // 2先被计

    对象作为数据类型

    JavaScript 的对象可以作为哈希表使用,主要用来保存命名的键与值的对应关系。

    使用对象的字面语法 - {} - 可以创建一个简单对象。这个新创建的对象从Object.prototype 继承下面,没有任何自定义属性。

    var foo = {}; // 一个空对象
    
    // 一个新对象,拥有一个值为12的自定义属性'test'
    var bar = {test: 12};

    访问属性

    有两种方式来访问对象的属性,点操作符或者中括号操作符。

    var foo = {name: 'kitten'}
    foo.name; // kitten
    foo['name']; // kitten
    
    var get = 'name';
    foo[get]; // kitten
    
    foo.1234; // SyntaxError
    foo['1234']; // works

    两种语法是等价的,但是中括号操作符在下面两种情况下依然有效

  • 动态设置属性

  • 属性名不是一个有效的变量名(译者注:比如属性名中包含空格,或者属性名是 JS 的关键词)

  • 删除属性

    删除属性的唯一方法是使用 delete 操作符;设置属性为 undefined 或者 null 并不能真正的删除属性, 而仅仅是移除了属性和值的关联。

    var obj = {
     bar: 1,
     foo: 2,
     baz: 3
    };
    obj.bar = undefined;
    obj.foo = null;
    delete obj.baz;
    
    for(var i in obj) {
     if (obj.hasOwnProperty(i)) {
     console.log(i, '' + obj[i]);
     }
    }

    上面的输出结果有 bar undefined 和 foo null - 只有 baz 被真正的删除了,所以从输出结果中消失。

    属性名的语法

    var test = {
     'case': 'I am a keyword so I must be notated as a string',
     delete: 'I am a keyword too so me' // 出错:SyntaxError
    };

    对象的属性名可以使用字符串或者普通字符声明。但是由于 JavaScript 解析器的另一个错误设计, 上面的第二种声明方式在 ECMAScript 5 之前会抛出SyntaxError 的错误。

    这个错误的原因是 delete 是 JavaScript 语言的一个关键词;因此为了在更低版本的 JavaScript 引擎下也能正常运行, 必须使用字符串字面值声明方式。

    文档

    JavaScript进阶系列—对象使用和属性

    JavaScript进阶系列—对象使用和属性:对象作为数据类型访问属性删除属性属性名的语法对象使用和属性JavaScript 中所有变量都可以当作对象使用,除了两个例外 null 和 undefined 。false.toString(); // 'false' [1, 2, 3].toString(); // '1,2,3&#
    推荐度:
    标签: 使用 对象 java
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top