我试图通过"##"分隔符拆分此字符串.
var historycookie = "8.4707417,77.0463719:Sector 14:Gurgaon##28.3952729,77.3238274:Sector 15:Faridabad";
var history = historycookie.split("##");
alert(history.length);alert(history[0])Run Code Online (Sandbox Code Playgroud)
该history.length警报是给我造成为6理想,但它应该是2,history[0]警惕是给不确定的.请帮助我,因为我无法理解为什么会发生这种情况.
我今天只是随机练习JS代码,我把这行代码放到了代码中.
var name = 45;
console.log(typeof name);Run Code Online (Sandbox Code Playgroud)
它告诉我变量名的类型是一个字符串.这很奇怪但是当我键入这个时,Name的类型是String:
var age = 45;
console.log(typeof age);Run Code Online (Sandbox Code Playgroud)
但这里的变量年龄类型是Number.为什么我会观察到这种不一致?是一些约会还是这样的?
当使用JavaScript设置div的innerHTML时,我只有一个div,我无法弄清楚为什么它没有设置...
我的<body>页面上有以下代码
<div style="width:50%; margin:0 auto;">
<div id="name"></div>
<div id="image"></div>
<div id="description"></div>
</div>
<script>
var url = window.location.href;
var captured = /name=([^&]+)/.exec(url)[1];
var result = decodeURI(captured);
if (result != 'none') {
var name = document.getElementById('name');
name.innerHTML = "<p>" + result + "</p>";
var description = document.getElementById('description');
description.innerHTML = '<object data="descriptions/' + result + '.txt" style="font-family:Gotham, Helvetica, Arial, sans-serif"></object>'
var image = document.getElementById('image');
image.innerHTML = '<img style="float:left;" src="images/' + result + '.jpg">'
}
else {
document.write('You have no items …Run Code Online (Sandbox Code Playgroud) 我是javascript语言的新手.格式是在网上给出的,我试过但它给出了未定义的结果.
var name = {
a : 'a',
b:'b',c:'c'
};
console.log(name.a);// undefined
console.log(name);// '[object object]'
Run Code Online (Sandbox Code Playgroud)
输出未定义?为什么
谁能解释为什么这个结果是无限循环?
var name = true;
var soloLoop = function () {
while (name) {
console.log(name);
name = false;
}
};
soloLoop();
Run Code Online (Sandbox Code Playgroud)
我是JavaScript的新手,正在尝试了解吊装和范围的概念。
情况1
var name;
function logName(num) {
console.log(name, num);
}
logName(1);
name = "Auro";
logName(2);Run Code Online (Sandbox Code Playgroud)
我在控制台中有以下输出
Auro 1
Auro 2
Run Code Online (Sandbox Code Playgroud)
如果我理解hoisting正确,那么JS引擎会首先提升变量的声明,然后自动为其赋值undefined。仅当遇到赋值(=)运算符时,它才实际为其分配预期值。
如果我的理解是正确的,则在第一次logName调用该函数时,该变量name应该已打印未定义,但它正在打印该值。
情况二
Auro 1
Auro 2
Run Code Online (Sandbox Code Playgroud)
在控制台中输出:
Baner 1
Auro 2
Run Code Online (Sandbox Code Playgroud)
这让我更加困惑。在这里,对函数的第一个调用logName选择了对变量的后一个分配并打印Baner,但是,第二个调用选择了前一个分配,即Auro。
这里发生了什么?我想念什么?
考虑以下代码
<!DOCTYPE html>
<html>
<head>
<script>
var name = 0;
while ( name < 6 ) {
console.log('Masha');
name = name + 1;
console.log(name);
}
</script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我希望Chrome开发者工具中的输出为:
Masha
name.html:9 1
name.html:7 Masha
name.html:9 2
name.html:7 Masha
name.html:9 3
name.html:7 Masha
name.html:9 4
name.html:7 Masha
name.html:9 5
name.html:7 Masha
name.html:9 6
Run Code Online (Sandbox Code Playgroud)
相反,我得到了
Masha
name.html:9 01
name.html:7 Masha
name.html:9 011
Run Code Online (Sandbox Code Playgroud)
为什么会这样?如果我直接复制/粘贴代码也会发生这种情况.如果我切掉它n的name那么它确实有效.如果我将变量更改为myName它确实有效.为什么它被强制转换为字符串?我正在使用Version 57.0.2987.133 (64-bit)Chrome.它也发生在Firefox中52.0.2 (64-bits).
当我在节点或Internet Explorer中运行代码时,不会发生这种情况.