什么是断言? 程序中的断言是什么意思,让我们带着疑问一步步探索

断言即我们相信程序某个特定点布尔表达式为真

举个例子就是:

我相信你是对的,然后让别人判断一下你是对的或错的,最后我得到结果。

好了,进入正题

assert - 断言(后面的参数我就不一一介绍了,直接上code)

 assert(value[, message])
assert(value,meesage)
//上述两种格式是一样的,程序中的‘[]’代表可选部分,‘<>’代表必选部分。 assert.deepEqual(actual, expected[, message])
assert.deepStrictEqual(actual, expected[, message])
assert.doesNotThrow(block[, error][, message])
assert.equal(actual, expected[, message])
assert.fail(message)
assert.fail(actual, expected[, message[, operator[, stackStartFunction]]])
assert.ifError(value)
assert.notDeepEqual(actual, expected[, message])
assert.notDeepStrictEqual(actual, expected[, message])
assert.notEqual(actual, expected[, message])
assert.notStrictEqual(actual, expected[, message])
assert.ok(value[, message])
assert.strictEqual(actual, expected[, message])
assert.throws(block[, error][, message])

assert(value[, message])

const assert = require('assert');
assert(true, console.log('***打印出信息了'));

assert.deepEqual(actual, expected[, message])

只测试可枚举的自身属性,不测试对象的原型、连接符、或不可枚举的属性(这些情况使用 assert.deepStrictEqual())。 例如,下面的例子不会抛出 AssertionError,因为 RegExp 对象的属性不是可枚举的:

原型:原本的类型

连接符:"+"

可枚举的自身属性:

console.log(Object.keys(var_name))

//输出的可枚举的自身属性

不可枚举的属性:可枚举和不可枚举类型的比较点就是:能否被for..in遍历到

var num = new Number();
for (var pro in num) {
console.log("num." + pro + " = " + num[pro]);
}
//forTest.js

//不可枚举的js基本类型,返回null
var num = new Number();
for (var pro in num) {
console.log("num." + pro + " = " + num[pro]);
} function Person() {
this.name = "KXY";
}
Person.prototype = {
constructor: Person,
job: "student",
}; var kxy = new Person();
Object.defineProperty(kxy, "sex", {
value: "female",
enumerable: false
}); // 不可枚举的sex,其主要原因在于enumerable(true即可枚举)
for (var pro in kxy) {
console.log("kxy." + pro + " = " + kxy[pro]);
} // 可枚举的自身属性
console.log(Object.keys(kxy));

Node.js - 断言的更多相关文章

  1. Node.js权威指南 (10) - Node.js中的错误处理与断言处理

    10.1 使用domain模块处理错误 / 272 10.1.1 domain模块概述 / 272 10.1.2 创建并使用Domain对象 / 274 10.1.3 隐式绑定与显式绑定 / 276 ...

  2. Node.js之断言处理

    Node.js之断言处理 在Node.js中,可以利用assert模块进行断言处理,如果判断错误,则抛出AssertError异常 1 equal方法与notEqual方法 equal方法用于判断两个 ...

  3. Node.js之错误处理与断言处理

    Node.js之错误处理与断言处理 1. 使用 domain 模块处理错误 try..catch 多用于捕捉同步方法中的抛出错误,但不能用try..catch捕捉异步方法中抛出de错误 如: 1 va ...

  4. Node.js:console模块

    console模块提供了一个简单的调试功能,类似与web浏览器的javscript console. 下面简单介绍下该模块的使用以及用途,我使用了ES6的模版字符串(使用反引号标识),有兴趣的可以去了 ...

  5. 10个常见的Node.js面试题

    如果你希望找一份有关Node.js的工作,但又不知道从哪里入手评测自己对Node.js的掌握程度. 本文就为你罗列了10个常见的Node.js面试题,分别考察了Node.js编程相关的几个主要方面. ...

  6. Node.js API 初解读(二)

    四. Cluster 1.简介 在介绍 Cluster 之前.我们需要知道 node的 一些基本特性,比如说 都知道的 nodejs最大的特点就是单进程.无阻塞运行,并且是异步事件驱动的. 那么随之而 ...

  7. Node.js API 初解读(一)

    Node.JS API 初解读 Version: NodeJs v6.2.0 一. Assert 1.简介 Assert模块主要用于断言.如果表达式不符合预期,就抛出一个错误. 该模块用于编写程序的单 ...

  8. Node.js开发者最常范的10个错误

    目录 前言 1 不使用开发工具 1.1 自动重启工具 1.2 浏览器自动刷新工具 2 阻塞event loop 3 频繁调用回调函数 4 圣诞树结构的回调(回调的地狱) 5 创建一个大而完整的应用程序 ...

  9. 译\Node.js应用的持续部署

    Node.js应用的持续部署 翻译前 翻译自:https://blog.risingstack.com/continuous-deployment-of-node-js-applications/ 正 ...

随机推荐

  1. C++派生类继承父类修饰符

    公式: 继承成员对外的访问属性 = Max{继承方式,父类成员访问级别}: 1.如果子类从父类继承时使用的继承限定符是public,那么(1)父类的public成员成为子类的public成员,允许类以 ...

  2. postman使用--发送请求

    概述 上节讲了下接口的基础,从现在来学习怎么测接口.当然,测试接口有很多的工具,比如postman,jmeter等等,或者用代码测试,如果是做接口自动化我当然会选python,如果是调试接口,我特别喜 ...

  3. 一个电脑安装两个jdk版本

    场景:先前使用了1.6的jdk但是现在学java需要使用jdk1.8的,现在打算电脑上使用两个jdk 1 . 准备两个版本的jdk我的两个jdk路径为: D:\jdk1.7.0_80 D:\Progr ...

  4. Ubuntu14.04环境下Qt5.5以上版本无法输入中文的解决教程

    1.前言 由于Qt5.4之后对之前的Qt5版本不再二进制兼容,所以网上很多简单的旧的办法已经失效了,所以本教程的办法是重新编译fcitx-qt5,生成最新的libfcitxplatforminputc ...

  5. Go:反射

    一.通过反射获取类型信息 在 Go 程序中,使用 reflect.TypeOf() 函数可以获得任意值的类型对象(reflect.Type),程序通过类型对象可以访问任意值的类型信息. package ...

  6. day17-python之文件操作

    1.内置函数 #!/usr/bin/env python # -*- coding:utf-8 -*- # print(abs(-1)) # print(abs(1)) # # print(all([ ...

  7. HDU 1087 Super Jumping! Jumping! Jumping! (LIS的最大和)

    题意: 给定n个数的序列, 找出最长上升子序列和. 分析: #include<cstdio> #include<iostream> #include<queue> ...

  8. NOI模拟赛(3.15) sequence(序列)

    Description 小A有N个正整数,紧接着,他打算依次在黑板上写下这N个数.对于每一个数,他可以决定将这个数写在当前数列的最左边或最右边.现在他想知道,他写下的数列的可能的最长严格上升子序列(可 ...

  9. 根据不同的产品id获得不同的下拉选项 (option传多值)

    <td> 没有 value 所以要在<td>里面加上input  同时text 为hidden这样就不会显示value的值 <td><select id='g ...

  10. loadrunner使用随机值

    用户登录设置:系统用1000000001.1000000002等可以登录系统,这个代表登录的用户名