百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>JS教程> javascript中变量对象的问题
分享文章到:

javascript中变量对象的问题

发布时间:01/15 来源: 浏览: 关键词:
在js中变量对象有传值与赋值的各种问题,下面我来给各位同学详细介绍javascript变量对象的一些问题,各位朋友可进入参考。

今天在网上看到一段代码,如下

 代码如下

copytext
console.log(typeof(s)); //function
var s = "1111";
function s(){}
console.log(typeof(s)); //stringconsole.log(typeof(s)); //function
var s = "1111";
function s(){}
console.log(typeof(s)); //string


琢磨了很久,终于想明白了JS中变量对象的问题
第一行输出function,因为当进入作用域后,变量对象会首先扫一遍当然作用域的函数,然后再扫一篇变量,然后存进变量对象,然后再接着开始执行代码。

所以第一行会输出function。

而第四行因为函数是先于变量存入变量对象的,所以在接着的第二行代码s = “1111″,就覆盖了原来的函数变量s,所以输出string


将变量值传入对象时的问题

问题如下:

 代码如下
var o = 'left';
    var o1 = {drt:'left'};
    var o2 = ['left'];
  
    var obj = {o:333};
    var obj1 = {o1[drt]:333};
    var obj2 = {o2[0]:333};

代码前三行是变量的几个不同声明方式,即普通变量、对象、数组;后三行分别调用了这3个变量并插入对象。问题来了:
1. 为什么obj1和obj2声明时就直接报错呢?
2. obj没报错,但为什么循环他的属性时,第一个属性直接就叫做“o”,而不是变量o的值"left"呢?

如果我要达到将变量传给对象当属性,将变量值传给对象当属性值的时候,难道只有用:

 代码如下

var o1 = {drt:'left'};
var obj3={drt:o1.drt}


类中变量的赋值问题

Javascript中object.prop和object[prop]赋值的区别。

举一个简单的例子,比如要从stocks中获取出开盘价的信息,组成一个openList对象。实现代码如下

 代码如下
var stocks = {
 '600000': {'name':'浦发银行', 'open':'9.67', 'new':'9.54'},
 '600004': {'name':'白云机场', 'open':'6.82', 'new':'6.77'},
 '600005': {'name':'武钢股份', 'open':'3.23', 'new':'3.19'},
 '600006': {'name':'东风汽车', 'open':'3.96', 'new':'3.86'}
};
 
var openList = {
 '600000': '9.67',
 '600004': '6.82',
 '600005': '3.23',
 '600006': '3.96'
};
 
var result = {};
var i;
//获得开盘价数据对象
for (i in stocks) {
 //方法1
// result[i] = stocks[i]['open'];
 //方法2
 result.i = stocks[i]['open'];
}

这里方法1,能获取到想要的结果。

但是方法2获取的结果:{i: ”3.96″}。

所以对象.属性,这个属性不能是个变量,像这里的i就成了对象的一个属性被覆盖了。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有4人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板