JavaScript对象点语法和字符串面试题

点语法:对象名.属性名(更紧凑,阅读性更高);

字符串语法:对象名['属性名'];

  • 面试题:请写出下列打印结果
        var obj = {
            aaa: 10,
            tony: 'stark',
            sex: '男'
        };
        var aaa = 'sex';
        var iron = 'tony';

        console.log(obj.aaa);
        console.log(obj['aaa']);
        console.log(obj[aaa]);
        console.log(obj.sex);
        console.log(obj['sex']);
        console.log(obj[sex]);
        console.log(obj.tony);
        console.log(obj['tony']);
        console.log(obj.iron);
        console.log(obj['iron']);
        console.log(obj[iron]);
        for (var key in obj) {
            console.log(key);
            console.log(obj.key);
            console.log(obj['key']);
            console.log(obj[key]);
        };
  • 结果
        console.log(obj.aaa);//10
        console.log(obj['aaa']);//10
        //字符串语法 取aaa变量中存储的字符串对应的属性值: obj['aaa']
        console.log(obj[aaa]);//男
        console.log(obj.sex);//男
        console.log(obj['sex']);//男
        //报错: sex is not defined
        //这行代码报错的原因不是对象取不出来属性值(属性不存在也不会报错,而是undefined)
        //真的原因是sex变量没有声明
        console.log(obj[sex]);//报错 这段代码需要注释掉才能执行下方代码
        console.log(obj.tony);// stark
        console.log(obj['tony']);//stark
        //这行代码意思: 点语法取obj的iron属性中存储的数据  undefined
        console.log(obj.iron);//undefined
        console.log(obj['iron']);//undefined
        //字符串语法取 iron变量中存储的字符串对应的属性值  obj['tony']
        console.log(obj[iron]);// stark
        for(var key in obj){
            //key:变量存储obj的属性名字符串
            console.log(key);
            //取属性名叫做key中存储的值
            console.log(obj.key);//undefined
            console.log(obj['key']);//undefined
            console.log(obj[key]);//for-in循环中唯一的取值方式
        };
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,141评论 1 32
  •   引用类型的值(对象)是引用类型的一个实例。   在 ECMAscript 中,引用类型是一种数据结构,用于将数...
    霜天晓阅读 1,088评论 0 1
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,145评论 6 13
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,161评论 0 21
  • 1.OC里用到集合类是什么? 基本类型为:NSArray,NSSet以及NSDictionary 可变类型为:NS...
    轻皱眉头浅忧思阅读 1,394评论 0 3