【发布时间】:2015-05-24 12:56:12
【问题描述】:
我从Cloudflare 链接复制了一个 HTML5Shiv.min.js 版本,当我将文件导入 Adobe Brackets 时,JSLint 编译器告诉我脚本包含以下错误:
4 Missing 'use strict' statement.
!function (a, b) {function c(a, b) {var c = a.createElement("p"), d = a.getElementsByTagName("head")[0] || a.documentElement; return c.innerHTML="x<style>"+b+"</style>",d.ins
4 'c' is already defined.
!function (a, b) {function c(a, b) {var c = a.createElement("p"), d = a.getElementsByTagName("head")[0] || a.documentElement; return c.innerHTML="x<style>"+b+"</style>",d.ins
4 Expected ';' and instead saw '='.
!function (a, b) {function c(a, b) {var c = a.createElement("p"), d = a.getElementsByTagName("head")[0] || a.documentElement; return c.innerHTML="x<style>"+b+"</style>",d.ins
4 Unreachable '=' after 'return'.
!function (a, b) {function c(a, b) {var c = a.createElement("p"), d = a.getElementsByTagName("head")[0] || a.documentElement; return c.innerHTML="x<style>"+b+"</style>",d.ins
4 Expected an identifier and instead saw '='.
!function (a, b) {function c(a, b) {var c = a.createElement("p"), d = a.getElementsByTagName("head")[0] || a.documentElement; return c.innerHTML="x<style>"+b+"</style>",d.ins
4 Stopping. (100% scanned).
!function (a, b) {function c(a, b) {var c = a.createElement("p"), d = a.getElementsByTagName("head")[0] || a.documentElement; return c.innerHTML="x<style>"+b+"</style>",d.ins
如果我决定使用它,这真的会起作用吗?缺少语句和无法访问的运算符的代码。也许 JSLint 不是最新的或者有些东西已经关闭,但如果可能的话,我想获得第二个意见。
谢谢。
【问题讨论】:
-
当然可以——如果没有,你真的认为 HTML5Shiv 脚本会变得那么流行吗?您需要意识到的是,linter 是一种提醒您潜在问题的工具,这些问题不一定是真正的错误。
-
好吧,我明白了,但对我来说,吸引大众还不够。我只是想了解发生了什么。不过谢谢。我刚刚开始学习 JScript,其中一些错误听起来像是用其他语言无法编译的东西!
-
好吧,对大众有用的东西至少不会那么错 ;-) 当涉及到这种脚本时,Web 开发人员社区通常非常投入——如果有人提出这样的解决常见问题的解决方案,然后由其他人审查并在必要时进行改进。
-
同样,此类 linter 工具的主要目的是提醒潜在问题,并按照“更严格”的标准编写脚本。他们经常会说,“这看起来可能会导致问题”,但这并不一定意味着实际上存在这样的错误。它们是编写“更干净”代码的一种方式,但不一定是比开始时“更好”的代码。编写这样的脚本的人可能会为问题寻求“更肮脏”的解决方案,只是为了让脚本更小。
标签: javascript jslint adobe-brackets html5shiv