/**
* 五种基本数据类型:string, number, boolean, null, undefined
*/
// undefined
// 声明变量foo,未声明变量bar
var foo;
console.log(`typeof foo: ${foo}`, `typeof bar: ${bar}`); // typeof foo: undefined typeof bar: undefined
if (foo === undefined) { // foo全等于undefined
console.log('foo全等于undefined');
} else {
console.log('foo不全等于undefined');
}
if (typeof bar === 'undefined') { // bar全等于undefined
console.log('bar全等于undefined');
} else {
console.log('bar不全等于undefined');
}
// typeof 返回字符串类型
console.log(`typeof (typeof foo): ${typeof (typeof foo)}`); // typeof (typeof foo): string
// 定义函数f()但没有函数体,默认为undefined
function f() { }
console.log(`typeof f(): ${typeof f()}`, `f() === undefined: ${f() === undefined}`); // typeof f(): undefined f() === undefined: true // null
console.log(`typeof Null: ${typeof Null}`); // typeof Null: undefined
console.log(`typeof null: ${typeof null}`); // typeof null: object // string
// 常用转义字符
// ---------------------------------------------------------------------------
// \n 换行
// \t 制表符
// \b 空格
// \r 回车
// \f 换页符
// \\ 反斜杠
// \' 单引号
// \" 双引号
// \0nnn 八进制代码 nnn 表示的字符(n 是 0 到 7 中的一个八进制数字)
// \xnn 十六进制代码 nn 表示的字符(n 是 0 到 F 中的一个十六进制数字)
// \unnnn 十六进制代码 nnnn 表示的 Unicode 字符(n 是 0 到 F 中的一个十六进制数字)
// ---------------------------------------------------------------------------
var foo = 'hello';
console.log(`typeof foo: ${typeof foo}`); // typeof foo: string // boolean
var right = true,
wrong = false;
console.log(`typeof right: ${typeof right}, typeof wrong: ${typeof wrong}`); // typeof right: boolean, typeof wrong: boolean // number
// 整型
var foo = 100;
console.log(`typeof foo: ${typeof foo}`); // typeof foo: number
// 八进制
var foo = 017;
console.log(foo); //
// 十六进制
var foo = 0xAB;
console.log(foo) //
// 浮点数
var foo = 23.01;
console.log(foo); // 23.01
// 最大值
console.log(`Number.MAX_VALUE = ${Number.MAX_VALUE}`); // Number.MAX_VALUE = 1.7976931348623157e+308
// 最小值
console.log(`Number.MIN_VALUE = ${Number.MIN_VALUE}`); // Number.MIN_VALUE = 5e-324
// 正无穷大
console.log(`Number.POSITIVE_INFINITY = ${Number.POSITIVE_INFINITY}`); // Number.POSITIVE_INFINITY = Infinity
// 负无穷大
console.log(`Number.NEGATIVE_INFINITY = ${Number.NEGATIVE_INFINITY}`); // Number.NEGATIVE_INFINITY = -Infinity
// isFinite 验证是有限数字
var foo = Number.POSITIVE_INFINITY,
bar = foo * 3;
if (isFinite(bar)) { // bar是无穷大数字
console.log('bar是有限数字');
} else {
console.log('bar是无穷大数字');
}
// NaN 不是一个数字,特殊数值,不可用于直接计算
var foo = 'hello';
if (isNaN(foo)) { // foo不是数字
console.log('foo不是数字');
} else {
console.log('foo是数字');
}

js五种基本数据类型:string, number, boolean, null, undefined的更多相关文章

  1. 【JavaScript的五种基本数据类型及转换】

    js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Null,Undefined),和一种混合数据类型就是特殊的(Object). "undefined& ...

  2. 5、前端--js常量、变量、5种基本数据类型(number string boolean undefined object)、运算符、流程控制、三元运算符、函数、自定义对象、内置对象、BOM操作

    变量与常量 在JS中声明变量需要使用关键字 老版本 var(全部都是全局变量) 新版本 let(可以声明局部变量) # 推荐使用let(其实问题不大) 在JS中声明常量也需要使用关键字 const # ...

  3. JavaScript 基础(一) - JavaScript的引入方式,JavaScript 变量命名规则,JS 的五种基本数据类型,ECMAScript 算数运算符,逻辑运算符

    JavaScript的引入方式 直接编写 <!DOCTYPE html> <html lang="en"> <head> <meta ch ...

  4. javascript中五种基本数据类型

    前言: JavaScript中有五种基本数据类型(也叫做简单数据类型)分别为:undefined.null.bolean.number.string:另外还含有一种复杂的数据类型:object. 深入 ...

  5. javascript总结27 :特殊引用类型String/Number/Boolean

    为了方便操作基本数据类型,JavaScript还提供了三个特殊的引用类型:String/Number/Boolean 1  Number 例如: var s1 = "zhangsan&quo ...

  6. 面试题:实现一个方法clone;可以对js五种数据类型进行值复制

    //先来方法的代码function clone(obj) { var copy; switch(typeof obj){ case 'number': case 'string': case 'boo ...

  7. redis的五种基本数据类型

    redis基本数据类型 redis一共分为5中基本数据类型:String,Hash,List,Set,ZSet 第一种String String类型是包含很多种类型的特殊类型,并且是二进制安全的.比如 ...

  8. Redis命令操作简介及五种value数据类型

    转自:https://blog.csdn.net/ty4315/article/details/52050721 Redis是使用键值存储数据,key必须是字符串value支持五种数据类型,最新版本又 ...

  9. js五种设计模式说明与示例

    第一种模式:js工厂模式    var lev=function(){        return "啊打";      };      function Parent(){    ...

随机推荐

  1. C Primer Plus 学习 第四章

    字符串与格式化输入/输出 函数 strlen() 关键字 const 利用#define 和 const创建符号常量 #include <stdio.h> #include <str ...

  2. 关于javascript提交到java后台空格去不掉ASCII为160的解决办法

    今天正则表达式匹配一个字符串,怎么都不对. 用正则表达式去掉尝试str.replaceAll("\\s*","");  在或者用replaceAll(" ...

  3. prometheus 笔记

    前言 prometheus 是监控应用软件类似于nagios. 安装 1.官网下载prometheus-2.2.0.linux-amd64压缩包,解压,执行./prometheus即可.这里重要的是配 ...

  4. find命令使用详解

    一.主要内容 ====================================== 1. 用文件名查找文件 2.用文件名查找文件,忽略大小写 3. 使用mindepth和maxdepth限定搜 ...

  5. jenkins持续集成(三): jenkins配置邮件通知

    完成基于jenkins的持续集成部署后,任务构建执行完成,测试结果需要通知到相关人员.这篇博客,介绍如何在jenkins中配置邮件通知的方法... 一.安装邮件插件 由于Jenkins自带的邮件功能比 ...

  6. [BZOJ3626] [LNOI2014] LCA 离线 树链剖分

    题面 考虑到询问的\(l..r,z\)具有可减性,考虑把询问差分掉,拆成\(r,z\)和\(l-1,z\). 显然这些LCA一定在\(z\)到根的路径上.下面的问题就是怎么统计. 考虑不是那么暴力的暴 ...

  7. linux(二)用户和用户组管理

    root用户可以访问自己的家目录,访问配置文件,访问普通用户的家目录 普通用户只能访问自己的家目录和root用户开放的目录 普通用户之间无法访问对方的家目录 创建用户,用id查看用户信息,root的u ...

  8. 【leetcode】1008. Construct Binary Search Tree from Preorder Traversal

    题目如下: Return the root node of a binary search tree that matches the given preorder traversal. (Recal ...

  9. ROS基础学习总结

    最近一周因为工程需要,把ROS的一些基础学习了一下,现在做一下总结. 学习资源: #创客智造整理的wiki上的ROS入门教程(中文)https://www.ncnynl.com/category/ro ...

  10. mobx学习笔记02——mobx基础语法(class)

    新的语法可能不被浏览器支持,可以使用babel转换为浏览器支持的代码格式: 为什么要定义class? js是一门面向对象的编程语言.需要利用类来复用代码,提高编程效率. 需要什么样的class能力? ...