hello,very glad to answer you.
assert()函数是一个调试中经常使用的断言工具函数,他是控制台对象console的一个方法。Assert主要用来测试一些逻辑判断是否成立。在具备调试工具的浏览器上(比如google浏览器),都可以使用console.assert()来实现一些调试功能。
assert方法有2个参数,其中一个是一个逻辑表达式,也就是我们进行判断的语句,第二个参数是一个字符串,当第一个参数的逻辑结果为false 的时候输出该语句,一般我们设置为出错语句。看哥例子楼主就明白了。
下面是js代码:
可以看到testAssert的长度实际上是11,但是断言语句是判断为不为10,根据上面的介绍,浏览器的控制台应该会输出后面的字符串语句,我们看看效果,如下图所示:
然后我们修改源码,将判断改为11,看输出效果:
正确的逻辑语句,不会输出错误提示,应正了上面的理论解释。
另外还要注意的是,如果你用的是Firefox(火狐浏览器)的话要记得安装filebug插件才能支持这个方法。 望采纳。
assert模块提供了简单的断言测试功能,主要用来内部使用,也可能require(‘assert’)后在外部进行使用。assert模块的API为locked状态,也就是说,这个模块的API将不会再有添加或修改了。
简单的说:第一种是构造函数式,即通过new运算符调用构造函数Function来创建函数
第二种不是实例化,只是调用函数把返回值赋给变量。
扩展:
JavaScript 中并没有真正的类,但JavaScript 中有构造函数和new 运算符。构造函数用来给实例对象初始化属性和值。任何JavaScript 函数都可以用做构造函数,构造函数必须使用new 运算符作为前缀来创建新的实例。
new 运算符改变了函数的执行上下文,同时改变了return 语句的行为。实际上,使用new和构造函数很类似于传统的实现了类的语言:
// 实例化一个Me
var alice = new Me('alice', 18, 'Coder')
// 检查这个实例
assert( alice instanceof Me )
构造函数的命名通常使用驼峰命名法,首字母大写,以此和普通的函数区分开来,这是
一种习惯用法。
// 不要这么做!
Me('alice', 18, 'Coder')//=>undefined
这个函数只会返回undefined,并且执行上下文是window(全局)对象,无意间创建了3个全局变量name,age,job。调用构造函数时不要丢掉new 关键字。
当使用new 关键字来调用构造函数时,执行上下文从全局对象(window)变成一个空的上下文,这个上下文代表了新生成的实例。因此,this 关键字指向当前创建的实例。尽管理解起来有些绕,实际上其他语言内置类机制的实现也是如此。
默认情况下,如果你的构造函数中没有返回任何内容,就会返回this——当前的上下文。
要不然就返回任意非原始类型的值.