它将是类似数组的对象,但为什么我们不能用点表示法而不是括号表示法来访问它?
function testArray (rat){
return typeof arguments;
}
console.log(testArray("test")); // object
function testArray (rat){
return arguments.0; //[0] is work
}
console.log(testArray("test")); // error
Run Code Online (Sandbox Code Playgroud) 我正在尝试访问此对象的属性:
var obj = {hello: 1, world: 2};
Run Code Online (Sandbox Code Playgroud)
这让我回复未定义:
function foo(a) {
for(property in a) {
console.log(a.property);
}
return "foo";
}
foo(obj);
Run Code Online (Sandbox Code Playgroud)
这给出了预期的结果:
function bar(a) {
for(property in a) {
console.log(a[property]);
}
return "bar";
}
bar(obj);
Run Code Online (Sandbox Code Playgroud)
为什么对foo的调用不起作用,而对bar的调用允许我访问属性?
我有这个JSON代码:
{
"query": {
"pages": {
"-1": {
"ns": 0,
"title": "StackOverflow",
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我将其解析为JSON对象:
data = JSON.parse(jsonString);
Run Code Online (Sandbox Code Playgroud)
为什么访问对象-1我必须不要data.query.pages[-1]data.query.pages.-1.在此示例pages中,不是数组而是对象.
window['someKeyword']在 JavaScript中是什么意思?
我猜 window 是DOM window object,但是检索属性的语法window.propertyName在我找到的引用中,而不是window['propertyName']. 这两种方法是找回财产吗?
我试图获取Javascript对象的属性值.
我的代码是这样的:
for (key in map.regions) {
console.log(key);
console.log(states);
console.log(states.key);
}
Run Code Online (Sandbox Code Playgroud)
变量键将是这样的, "US-VA"
变量状态应如下所示:
Object {US-VA: Object, US-PA: Object, US-TN: Object, US-ID: Object, US-NV: Object…}
Run Code Online (Sandbox Code Playgroud)
(这是来自Chrome).
但是每当我在states.key上使用console.log时 - 它应该获得该键所代表的对象,而不是未定义.
我在这做错了什么?如何从states变量中获取与key中的值对应的值?
考虑以下对象:
var nyc = {
fullName: "New York City",
mayor: "Bill de Blasio",
population: 8000000,
boroughs: 5
};
Run Code Online (Sandbox Code Playgroud)
当我尝试使用 for 循环访问每个属性时:
for(var key in nyc){
console.log(nyc[key]);
}
Run Code Online (Sandbox Code Playgroud)
它返回正确的输出(属性值),但是......
for(var key in nyc){
console.log(nyc.key);
}
Run Code Online (Sandbox Code Playgroud)
这在 4 行上返回“未定义”
为什么会出现奇怪的行为,因为两者:
console.log(nyc.fullName);
console.log(nyc['fullName']);
Run Code Online (Sandbox Code Playgroud)
给出相同的o/p。
我有以下格式的JSON响应.
{
"_meta" : {
"next-person-id" : "1001",
"totalPersons" : "1000"
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Angular的$http服务来检索这个并试图next-person-id在javascript中访问属性,如下所示,
$http.get(url).then(
function(response){
console.log(response._meta.next-person-id);
}
);
Run Code Online (Sandbox Code Playgroud)
但是next-person-id响应总是不确定的.但我能够访问totalPersons属性.在javascript中使用' - '字符获取属性是否有任何问题?
我有这个代码,允许我返回一个关于连接到特定帖子的帖子的字符串.我试图在列表部分(list=list+this["connectionsTo"[i]].postNum+"\n";)中访问下面的属性时使用括号和点表示法,但不起作用.但是当我使用双点符号时,它有效,为什么?我相信那两个是一样的.
function Fencepost(x, y, postNum) {
this.x = x;
this.y = y;
this.postNum = postNum;
this.connectionsTo = [];
}
Fencepost.prototype = {
sendRopeTo: function(connectedPost) {
this.connectionsTo.push(connectedPost);
},
removeRope: function(removeTo) {
var temp = [];
for (var i = 0; i < this.connectionsTo.length; i++) {
if (this.connectionsTo[i].postNum != removeTo) {
temp.push(this.connectionsTo[i]);
}
}
this.connectionsTo = temp;
},
movePost: function(x, y) {
this.x = x;
this.y = y;
},
valueOf: function() {
return Math.sqrt(this.x * this.x +
this.y * this.y); …Run Code Online (Sandbox Code Playgroud) 我正在阅读如何创建登录表单并遇到此方法:
handleChange(e) {
this.setState({ [e.target.name] : e.target.value });
}
Run Code Online (Sandbox Code Playgroud)
不太确定它的setState部分发生了什么.由于某种原因,阵列括号让我失望.任何人都可以详细说明这种方法在做什么吗?
我在 NgRx 工作,收到此错误:
“预期有一个赋值或函数调用,但看到的是一个表达式。”
中的声纳问题this.sfForm.get('code')?.[this._mode ? 'disable' : 'enable']();。
我不明白来自声纳的消息,也不明白这里要解决什么问题。我需要一些帮助来理解代码并解决问题。
<mat-form-field [formGroup]="sfForm">
<input Input
matInput
(keydown.enter)="search($event.target.value)"
[type]="''"
formControlName="code"
required>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)
sfForm: FormGroup;
private _mode: boolean = true;
public set scanMode(value: boolean) {
this._mode = value;
this.sfForm.get('code')?.[this._mode ? 'disable' : 'enable']();
}
Run Code Online (Sandbox Code Playgroud) 请考虑以下代码:
var friends = {
bill: {
firstName: "Bill",
lastName:"William",
number: "212-555-1212",
address: ['Main Street', 'Yakama', 'WA','90012']
},
steve: {
firstName: "Steve",
lastName: "Steven",
number: "818-555-1212",
address: ['Any Street', 'Eureka', 'CA','90013']
},
betty: {
firstName: "Betty",
lastName: "Draper",
number: "503-555-1212",
address: ['Your Street', 'Madison', 'WI','90014']
}
};
var search = function(name){
for(var prop in friends){
if(friends[prop].firstName === name){
console.log(friends[prop]);
return friends[prop];
}
}
};
Run Code Online (Sandbox Code Playgroud)
我的问题是关于这一部分:
if(friends[prop].firstName === name)
Run Code Online (Sandbox Code Playgroud)
我想了解[prop]周围括号的用法以及为什么在这种情况下它们是必要的.我非常熟悉点语法表示法,但不熟悉这些括号的使用.
关于我的问题是否重复:我之前提出的问题和提出相同的问题实际上是一个偏好问题,即使用点语法与括号表示法有什么好处.我的问题本质上更为基础,并问为什么要使用它,更具体地说,为什么在我所展示的特定情况下它是必要的.此外,我没有看到其他帖子回答了我更基本的问题.
对那些嘲笑我并投票支持我的人的一句话,称我懒惰,没有搜索网络或转向右边:我在网上搜索答案,但有大量的网页有各种问题相关但不完全或根本没有回答我的问题.此外,如果您没有使用正确的短语或关键字搜索网络,您可能永远找不到您正在寻找的答案.我不熟悉JS中的这种特殊语法,所以也许我没有用正确的短语或关键词进行搜索.
最重要的是,我认真地问了这个问题,以便让自己更好地成为一名程序员.如果我唯一在这里失败的是你们中的一些人认为这是学习或不知道这一切的主要编程罪,那么在这里发表评论的某些人有小问题和傲慢的问题,这不是我的问题.
也就是说,我非常感谢那些真诚地尝试回答我的问题的人,非常感谢.
这是主要问题:
var obj = {
"22": false,
"32": true,
}
console.log(obj.32) //<---- NOT WORKING??!?!?!
Run Code Online (Sandbox Code Playgroud)
为什么我不能到达对象的一部分?
我知道你不能用数字开始变量,但你可以用对象部分,所以我怎么能读到这个?