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就成了对象的一个属性被覆盖了。

时间: 2024-10-27 18:36:15

javascript中变量对象的问题的相关文章

深入理解JavaScript中的对象

  这篇文章主要介绍了深入理解JavaScript中的对象,是JS入门学习中的基础知识,需要的朋友可以参考下 JavaScript是一种面向对象编程(OOP)语言.一种编程语言可以被称为面向对象的,它为开发者提供了四种基本功能: 封装 - 存储相关的信息,无论是数据或方法,还是对象 聚合 - 存储一个对象到另一个对象的内部 继承 - 类的能力依赖于另一个类(或类数),用于其部分的属性和方法 多态性 - 编写函数或者方法,在各种不同的方式工作 对象是由属性.如果属性包含一个函数,它被认为是一个对象

JavaScript中变量声明有var和没var的区别

 本文来论述JavaScript中变量声明有var和没var的区别,关于Js中的变量声明的作用域是以函数为单位,所以我们经常见到避免全局变量污染的方法是 1 2 3 (function(){  // ...  })(); 在函数内部,有var和没var声明的变量是不一样的.有var声明的是局部变量,没var的,声明的全局变量,所以可以借此向外暴露接口东东. 在全局作用域内声明变量时,有var 和没var看起来都一样,我们知道,声明的全局变量,就是window的属性,究竟是否一样,我们通过ECMA

javascript-关于javaScript中变量的问题,本人初学的菜鸟,希望哪位高手帮忙解答,感激不尽!!!

问题描述 关于javaScript中变量的问题,本人初学的菜鸟,希望哪位高手帮忙解答,感激不尽!!! List item <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 复选商品计算价格 var goodsNode = document.getElementsB

JavaScript中判断对象类型的几种方法总结_基础知识

我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串.如:"number","string","boolean","object","function","undefined"(可用于判断变量是否存在). 但 type

浅谈JavaScript中的对象及Promise对象的实现_javascript技巧

JavaScript 中的所有事物都是对象:字符串.数值.数组.函数.下面小编给大家收集整理些javascript中的对象及promise对象的实现.具体内容如下: 到处都是对象 window对象 常用的属性和方法介绍 location 包含页面的URL,如果改变这个属性,浏览器会访问新的URL status 包含将在浏览器状态去显示的一个串.一般在浏览器左下角 onload: 包含了需要在页面完全加载后调用的函数 document: 包含DOM alert方法: 显示一个提醒 prompt方法

JavaScript中的对象和原型(一)_javascript技巧

面向对象的语言(如Java)中有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.但是,JavaScript 没有类的概念,因此它的对象也与基于类的语言中的对象有所不同. 要了解面向对象,首先就要了解Javascript中的对象和原型.这篇文章中主要学习一下Javascript中的对象. 一 关于对象 对象其实就是一种引用类型.而对象的值就是引用类型的实例.在JavaScript 中引用类型是一种数据结构,将数据和功能组织在一起.它也常被称做为类,但JavaScript 中却没有类的概

JavaScript中变量声明有var和没var的区别示例介绍_javascript技巧

本文来论述JavaScript中变量声明有var和没var的区别,关于Js中的变量声明的作用域是以函数为单位,所以我们经常见到避免全局变量污染的方法是 (function(){ // ... })(); 在函数内部,有var和没var声明的变量是不一样的.有var声明的是局部变量,没var的,声明的全局变量,所以可以借此向外暴露接口东东. 在全局作用域内声明变量时,有var 和没var看起来都一样,我们知道,声明的全局变量,就是window的属性,究竟是否一样,我们通过ECMAScrpit5提供

javascript中的对象创建 实例附注释_js面向对象

javascript中的对象创建声明: var obj = {}; 或者 var obj = new Object(); 为对象加入属性,方法: //=====第一种写法==================================== obj.name = '小明'; //为对象加属性 obj.updateName = function(name){//为对象定义updateName方法 this.name = name; } alert(obj.name); obj.updateNam

JavaScript中Math对象方法使用概述

 JavaScript中Math对象方法如向上取整,有小数就整数部分加1,四舍五入.向下取整等等,下面为大家详细介绍下 1.丢弃小数部分,保留整数部分 parseInt(5/2)   2.向上取整,有小数就整数部分加1   Math.ceil(5/2)   3,四舍五入.   Math.round(5/2)   4,向下取整   Math.floor(5/2)   Math 对象的方法 FF: Firefox, N: Netscape, IE: Internet Explorer   方法 描述