我包括声明:
"use strict";
Run Code Online (Sandbox Code Playgroud)
在我的大多数Javascript文件的开头.
JSLint之前从未对此提出过警告.但现在是,说:
使用"use strict"的功能形式.
有谁知道"功能形式"会是什么?
我有一些使用Twitter API获取推文的Javascript.我解析数据并使用jQuery为DOM生成HTML.
我想要显示的一个方面是"查看此推文"链接 - 是的,sorta听起来很傻,但它允许用户获取特定推文的URL.
我正在生成一个带有href的标签.URL的格式如下:
http://twitter.com/{twitter-user-id}/status/{tweet-status-id}
Run Code Online (Sandbox Code Playgroud)
花括号中的内容是从推文中提取的实际数据(不,我不包括大括号).例如:
http://twitter.com/Atechtrader/status/57432099984130050
Run Code Online (Sandbox Code Playgroud)
在操作中发生的是,这适用于一些推文,但不适用于其他推文.对于失败的那些,Twitter服务器响应的内容表明所请求的页面不存在.
难道我做错了什么?
我需要一个通过npm安装的模块.我想访问从属于该模块的.js文件(因此我可以在其中继承一个Constructor方法).我不能(好吧,不想)修改模块的代码,所以没有地方提取它的__dirname.
我知道以下问题,但它是关于获取一个代码控制的模块的路径(因此,__ dirname是解决方案): 在Node.js中,我如何告诉`this`模块的路径?
~~~
更好的方法是获取模块的加载模块信息
我知道有些人认为存在一个主要的下划线意味着变量是"私有的",这种隐私是虚构的,并且假设这就是为什么JSLint报告带有错误消息的名称.
我在我正在构建的网站上使用Google Analytics.我参考GA的变量,例如"_gaq".
我试图让我的JS代码100%JSLint干净(我不喜欢我的编码风格,因此将与Crockford先生的建议一起).也就是说,我对Google的变量名称无能为力......所以,我想我不能100%"干净".
我在这里发布,以防我误解了消息,并且可以采取一些措施来遵守JSLint的做法.
我试图让我的Javascript代码100%JSLint干净.
我有一些JS代码,我从其他地方提取过来创建一个UUID.该代码具有以下行:
s[16] = hexDigits.substr((s[16] & 0x3) | 0x8, 1);
Run Code Online (Sandbox Code Playgroud)
这一行引发JSLint生成两条错误消息:
1) Unexpected use of '&'
2) Unexpected use of '|'
Run Code Online (Sandbox Code Playgroud)
我不明白为什么 - 我很欣赏有关如何重新编码以消除错误消息的建议.
我有一个巨大的脚本传递JSLint(包括避免所有坏的部分).除了一个延伸,这是一个非常复杂的混淆代码嵌入在更大的上下文中.JSLint对这一部分产生了相当多的抱怨,我想为这段代码选择性地禁用它.我已经选择使用了
/*jlsint xxx:true/false*/
Run Code Online (Sandbox Code Playgroud)
指令禁用某些微小代码的特定警告,这些代码执行与结构解释相反的操作.
我使用的混淆代码使用了我不知道是否可以禁用的构造.
例如:
for(L=(117.>
Run Code Online (Sandbox Code Playgroud)
导致此消息:
Problem at line 1 character 57: A trailing decimal point can be confused with a dot '117.
Run Code Online (Sandbox Code Playgroud)
当然,我知道我可以清理代码,但它是从混淆器发出的,我真的不想要清理混淆代码!
那么,有没有办法告诉JSLint完全忽略拉伸代码?
我知道这个查询JSLint:控制注释(选择性忽略)但它没有得到解答.
我有一些代码在循环中调用匿名函数,类似于这个伪示例:
for (i = 0; i < numCards; i = i + 1) {
card = $('<div>').bind('isPopulated', function (ev) {
var card = $(ev.currentTarget);
....
Run Code Online (Sandbox Code Playgroud)
JSLint报告错误"不要在循环中创建函数".我喜欢保持我的代码JSLint干净.我知道我可以将匿名函数移出循环并将其作为命名函数调用.除此之外,这是我的问题:
Javascript解释器是否真的会为每次迭代创建一个函数实例?或者只有一个函数实例"已编译"并且重复执行相同的代码?也就是说,将函数移出循环的JSLint"建议"实际上是否会影响代码的效率?
我正在使用jQuery的ajax方法来获取静态JSON文件.数据从本地文件系统加载,因此没有服务器,因此我无法更改MIME类型.
这在Safari中运行良好,但Firefox(3.6.3)报告该文件"格式不正确".我知道并在Stack Overflow上查看了类似的帖子:
使用XMLHttpRequest加载JSON文件时,Firefox中的"格式不正确"错误
我相信我的JSON格式正确:
{
"_": ["appl", "goog", "yhoo", "vz", "t"]
}
Run Code Online (Sandbox Code Playgroud)
我的ajax电话很简单:
$.ajax({
url: 'data/tickers.json',
dataType: 'json',
async: true,
data: null,
success: function(data, textStatus, request) {
callback(data);
}
});
Run Code Online (Sandbox Code Playgroud)
如果我用文档标记包装JSON:
<document>JSON data</document>
Run Code Online (Sandbox Code Playgroud)
正如上面引用的其他Stack Overflow问题中所提到的,ajax调用失败并出现解析错误.
那么:有没有办法在读取客户端JSON文件时避免Firefox警告?
我正在尝试使用jQuery设置元标记(请不要回答这是没有意义的,因为搜索引擎等等等等......我正在加载调用第三方Javascript函数来检查这些值,例如Tweetmeme和Facebook).
如果我使用:
$('meta[name=some-name]').attr('content', 'some value');
Run Code Online (Sandbox Code Playgroud)
它确实可以设置现有元标记的值,但如果这样的命名元标记不存在,则不会创建元标记.
如果您有这方面的见解或经验,请回复...
我试图让我的Javascript代码100%JSLint干净.
我有一个正则表达式:
linkRgx = /https?:\/\/[^\s;|\\*'"!,()<>]+/g;
Run Code Online (Sandbox Code Playgroud)
JSLint报道:
Insecure '^'
Run Code Online (Sandbox Code Playgroud)
是什么使得对字符集的否定使用"不安全"?
jslint ×6
javascript ×4
jquery ×2
ajax ×1
firefox3.6 ×1
json ×1
meta-tags ×1
mime-types ×1
node.js ×1
regex ×1
twitter ×1