gpt4 book ai didi

javascript 未验证,jslint 显示不正确的错误

转载 作者:行者123 更新时间:2023-12-03 10:58:47 24 4
gpt4 key购买 nike

我的代码在下面,有人可以进入 jslint 并粘贴我的代码并告诉我为什么会出现错误并修复。例如,它说“describe”在定义之前使用,但在 angularjs 网站的页面中,它们没有显示任何定义。另一个错误是“意外字符''”。第 2 行第 42 行字符。由于没有缺少空格,因此也为 false。

describe('forgotPasswordCtrl', function () {
beforeEach(module('forgotPasswordApp'));
var $controller;
var returnMsg = 'Forgot password response message';
beforeEach(inject(function(_$controller_){
$controller = _$controller_;
}));

describe('$scope.finish', function(){
it('returns a -forgot password response- message', function(){
var $scope = {};
var controller = $controller('forgotPasswordCtrl', { $scope: $scope });
$scope.finish();
expect($scope.globalError).toEqual(returnMsg);

});
});



describe('$scope.cancel', function(){
it('assigns a url depending on a customer match happens', function(){
var $scope = {};
var controller = $controller('forgotPasswordCtrl', { $scope: $scope });
$scope.cancel();
expect(window.location.assign).toEqual("/web/tfgm_customer");

});
});

最佳答案

哇。好的,所以您并不总是能够正确地对库进行 lint 检测。如果这段代码应该在上下文中工作,那么就会发生很多意大利面条。

这是我对你所提供的内容的最佳猜测。让我知道我做错了什么。

注意:您需要在文件顶部添加一些 /*jslint ... */ 指令。

  1. sloppy:true:允许您省略“use strict”
  2. white:true:允许不加区别的空格
  3. nomen:true:允许在变量名称的开头和结尾使用下划线 (_)。
  4. browser:true:此处允许使用窗口

另请注意 /*global ... */ 指令,您可以在其中放置所有这些函数,由于某些奇怪的原因,这些函数并不位于命名空间中。

我们开始:

/*jslint sloppy:true, white:true, nomen:true, browser:true */
/*global describe, module, beforeEach, inject, it, expect */

// You have some bad scoping below. I *think* you expect
// $controller, controller, & returnMsg to exist in full
// script scope.
var returnMsg, $controller = null, controller = null;

describe('forgotPasswordCtrl', function () {
beforeEach(module('forgotPasswordApp'));

returnMsg = 'Forgot password response message';
beforeEach(inject(function(_$controller_){
// You're never doing anything with this.
// JSLint wants to know why not.
$controller = _$controller_;
}));
});


describe('$scope.finish', function(){
it('returns a -forgot password response- message', function(){
var $scope = {};
controller = $controller('forgotPasswordCtrl', { $scope: $scope });
$scope.finish();
expect($scope.globalError).toEqual(returnMsg);
});
});

describe('$scope.cancel', function(){
it('assigns a url depending on a customer match happens', function(){
var $scope = {};
controller = $controller('forgotPasswordCtrl', { $scope: $scope });
$scope.cancel();
expect(window.location.assign).toEqual("/web/tfgm_customer");
});
});

$controller.usedSomehow(); // to make JSLint happy. Please use.
controller.usedSomehowAsWell(); // to make JSLint happy. Please use.

老实说,这里发生了很多奇怪的事情,我不知道该怎么办。我认为您需要向我们更好地描述您认为自己正在做的事情(这显然是(?)单元测试的东西),但是诸如此类的东西......

var $scope = {};
controller = $controller('forgotPasswordCtrl', { $scope: $scope });

没有多大意义。 $scope 是一个对象,您传递给一个属性,在传递给 $controller 的匿名对象中也称为 $scope?为什么?为什么不...

controller = $controller('forgotPasswordCtrl', { $scope: {} });

...?我的猜测是,你在不同的地方发生了很多事情 scopes在真正开始对代码进行 linting 之前,您需要确定此代码的周围。

也就是说,它可以按原样工作吗?

<小时/>

评论后编辑:

如果你得到这样的东西......

Unexpected character '(space)'.

beforeEach(module('forgotPasswordApp'));

...那是因为 JSLint 指令中没有 white:true 。检查JSLint instructions page有关所有这些选项的更多信息,其中关于 white 的说明如下:

true if strict whitespace rules should be ignored.

您看到的错误有点误导。如果行尾有任何尾随空格,则可能会引发该错误。

关于javascript 未验证,jslint 显示不正确的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28174698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com