我在JavaScript中使用数组(包括w3schools和devguru)阅读的大多数教程都建议您可以使用var test = new Array(4);语法将整数传递给Array构造函数来初始化具有一定长度的数组.
在我的js文件中大量使用这种语法之后,我通过jsLint运行了一个文件,它吓坏了:
错误:第1行字符22处的问题:预期')'而是看到'4'.
var test = new Array(4);
第1行第23个问题:预期';' 而是看到')'.
var test = new Array(4);
第1行字符23处的问题:预期标识符而不是')'.
通过阅读jsLint对其行为的解释后,看起来jsLint并不真正喜欢new Array()语法,而是[]在声明数组时更喜欢.
所以我有几个问题.首先,为什么?我是否因使用new Array()语法而冒任何风险?是否存在我应该注意的浏览器不兼容性?第二,如果我切换到方括号语法,有没有办法声明一个数组并将其长度全部设置在一行,或者我必须做这样的事情:
var test = [];
test.length = 4;
Run Code Online (Sandbox Code Playgroud) 我很好奇为什么在Python中列表中的尾随逗号是有效的语法,而且似乎Python只是忽略它:
>>> ['a','b',]
['a', 'b']
Run Code Online (Sandbox Code Playgroud)
这是有道理的,当因为它的元组('a')和('a',)是两个不同的东西,但在名单?
在尝试避免使用JavaScript多年之后,Iv开始在MVC asp.net中使用JQuery进行验证,因为似乎没有正式的验证方法,我很惊讶JQuery有多好.
首先是有一种方法让intellisense为JQuery及其验证插件工作,这样我就不必学习api了吗?
其次,我如何为此创建验证摘要,它当前将错误附加到文本框的右侧:
<script type="text/javascript">
$().ready(function() {
$("#CreateLog").validate({
rules: {
UserName: {
required: true,
minLength: 2,
}
},
messages: {
UserName: {
required: "Please enter a username",
minLength: "Your username must consist of at least 2 characters",
}
}
});
});
</script>
<form id="CreateLog" action="Create" method="post" />
<label>UserName</label><br />
<%=Html.TextBox("UserName")%>
<br />
<div class="error"> </div>
<input type=submit value=Save />
</form>
Run Code Online (Sandbox Code Playgroud)
我尝试将其添加到脚本中:
errorLabelContainer: $("#CreateLog div.error")
Run Code Online (Sandbox Code Playgroud)
这到html:
<div class="error"> </div>
Run Code Online (Sandbox Code Playgroud)
但这没效果.
我正在尝试遵循Airbnb定义的 JS 代码风格。
函数调用参数尾随逗号的规则指出:
7.15 具有多行签名或调用的函数应像本指南中的所有其他多行列表一样缩进:每个项目单独占一行,最后一个项目后面带有逗号。
但是当我执行以下操作时:
/* THREE.js constructor for PerspectiveCamera */
const camera = new THREE.PerspectiveCamera(
75,
window.innerWidth / window.innerHeight,
0.1,
1000,
);
Run Code Online (Sandbox Code Playgroud)
Google Chrome 抱怨以下错误:
app.js:11 未捕获的语法错误:意外的标记)
当我删除尾随逗号时,一切正常。这段代码在 Firefox 中运行良好,我相当确定从今天(2017 年 4 月 11 日)开始,它在一周前在 Chrome 中也运行良好 - 因为从那时起我就没有更改过我的代码,并且我正在向其展示我正在开发的应用程序我的同事。
请注意,数组中的尾随逗号仍然可以正常工作:
testArray = [
'one',
'two',
'three',
];
Run Code Online (Sandbox Code Playgroud)
有人可以解释这种行为或指出我可以在哪里查找更多信息吗?
在 Ubuntu 16.04 上使用 Google Chrome(版本 57.0.2987.133(64 位))。
以下脚本未在IE7中运行,但在IE 8 + 9和所有其他浏览器中运行良好.即使放入alert("something");不起作用 - 我有另一个脚本工作正常,并在IE 7完美运行.
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
Run Code Online (Sandbox Code Playgroud)
我错过了DOCTYPE吗?这是下面的脚本;
var formPageTitle = $("div.hsRadarform td h3").text();
$('.AspNet-DataList td a').each(function (index) {
var listElementText = $(this).text();
var shade = "faint";
if(formPageTitle.toLowerCase() == listElementText.toLowerCase()) {
shade = "dark";
}
//adding the numbered circles here using jQuery
$(this).css({
'background-image': 'url(/assets/img/radarstep' + (index + 1) + shade + '.png)',
'background-repeat': 'no-repeat',
'height': '25px',
'width': '25px',
});
});
Run Code Online (Sandbox Code Playgroud) 我正在开发一个Web项目,我们想尝试使用KnockoutJS.首先,我使用Chrome构建我的应用程序(因为在官方,Knockout似乎与IE8一起工作),但是当我在IE8中尝试我的Web应用程序时,我有很多例外:
HTML:
<ul class="nav nav-tabs" id="tabs" data-bind="foreach: items">
<li data-bind="'id': 'id', css: { active: 'id' == $parent.selectedTab().id }, 'click': $parent.changeTab">
<a data-toggle="tab" data-bind="text: name, attr: { 'href': 'href' }"></a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
JS:
var tabs = [
new TabViewModel(1, "Tab 1", true),
new TabViewModel(2, "Tab 2", true),
new TabViewModel(3, "Tab 3", false),
];
function TabViewModel(id, name, enabled) {
var self = this;
self.id = ko.observable("test" + id);
self.name = name;
self.paneId = "tab" + id;
self.href = ko.observable("#tab" + id);
self.displayId …Run Code Online (Sandbox Code Playgroud) 我们应该写吗?
var a = [ 'a', 'b', 'c', ];
var b = { '1', '2', '3', };
Run Code Online (Sandbox Code Playgroud)
要么
var a = [ 'a', 'b', 'c' ];
var b = { '1', '2', '3' };
Run Code Online (Sandbox Code Playgroud)
什么是最正确的方法?
我注意到,如果有逗号期望在逗号后会有另一个数组项(或属性),则旧版本的IE会引发错误.
我的页面页脚中有一个2小脚本,在IE8中产生脚本错误.IEtester说这个脚本错误是从文档准备好的(但我相信它只是因为它是开始).我使用jQuery,因此它是跨浏览器兼容的.:(
<script type="text/javascript">
$(document).ready(function(){
//flexslider
$(".flexslider").flexslider({
animation : "slide",
slideshow : true,
animationDuration: "750",
slideshowSpeed: 5000,
pauseOnAction: true,
});
//text slider overer
$("#videos li").on({
mouseenter: function() {
$(this).animate({"padding-left": "50px"}, "normal");
},
mouseleave: function() {
$(this).stop(true).animate({"padding-left": "0px"}, "slow");
}});
});
Run Code Online (Sandbox Code Playgroud)
有谁知道如何更正此脚本错误?如果是这样,你能解释为什么首先创建这个错误?
第一个脚本html页面:http: //designobvio.us/fonts/ 第二个脚本html页面:http://designobvio.us/fonts/middle.php
javascript ×6
jquery ×3
syntax ×2
arrays ×1
asp.net-mvc ×1
comma ×1
html ×1
ietester ×1
jslint ×1
knockout.js ×1
list ×1
python ×1
trailing ×1
validation ×1