概述
JavaScript 笔记(二):基础类型
字面量
整型
520
10086
实型
3.14
10.24
字符串
'Reyn'
"Morales"
'X'
"2048"
- 不论是一个字符还是若干字符均为字符串
布尔
true
false
变量
var age = 21; // 初始化,如果没有初始化,内容为 undefined
console.log(age);
let name = 'Reyn Morales'; // ES6
console.log(name);
使用 var 和 let 定义变量的区别在于,使用 var 定义变量时,可以定义重名变量,且后定义的变量会覆盖先定义的变量,由于预解析的存在,可以先使用变量,之后再定义变量,此时,预解析会先将变量定义置于最前面,从而以使用未初始化的变量,而使用 let 定义变量则不会出现这些现象;此外,使用 var 定义的变量不会区分全局变量(简单理解为
{}
之外的变量,从定义开始之后,直到文件结束,在任何地方都可以使用【包括另外一个 script 标签中】)和局部变量(简单理解为{}
之内的变量,从定义开始之后,直到括号结束,在大括号内部任何地方都可以使用,只要不在大括号内部,那么在{}
之间定义的变量将失效),而使用 let 定义的变量区分全局变量和局部变量
常量
const PI = 3.14
关键字
在 JavaScript 中严格区分大小写
标识符
命名规则
- 标识符由字母、数字、下划线以及
$
- 不能以数字开头
- 严格区分大小写
- 不能使用关键字和保留字
由于 JavaScript 在底层使用 Unicode 编码,因此标识符可以使用 Unicode 编码中的字符(包括中文)
命名规范
- 见名知意
- 驼峰命名法
注释
// 单行注释
/*
多行注释
*/
数据类型
概要
静态数据是指存储在硬盘中的永久保存的数据,而动态数据是指程序运行时在内存中临时产生的数据,程序运行时,将硬盘中的静态数据转移到内存中(动态数据)处理,处理之后将其再存放到硬盘上(静态数据)
JavaScript 中的动态数据类型如下:
- 基本数据类型
- Number 数值(整型/实型)
- String 字符串(字符串)
- Boolean 布尔(true/false)
- Undefined 未定义(当某个变量未被初始化时,默认保存的内容为 undefined,值得注意的是,Undefined 是一个类型,而 undefined 是一个取值)
- Null 空
- 引用数据类型
- Object 对象
JavaScript 提供了 typeof 运算符来检测某个变量的数据类型,示例如下:
console.log(typeof "Reyn Morales");
let num = 123;
console.log(typeof num);
类型转换
字符串
- Number 与 Boolean 类型的变量可以使用
toString
方法转换为字符串类型,示例如下:
let num = 520;
console.log(num);
console.log(typeof num);
let strNum = num.toString();
console.log(strNum);
console.log(typeof strNum);
toString
方法不会修改变量中存储的数据,返回的是数据的拷贝经过转换之后的结果,此外,字面量不可以使用此方法,而 Undefined 类型与 Null 类型的变量使用此方法会报错
- 使用
String
方法可以将 Number、Boolean、Undefined 和 Null 类型的变量或字面量转换为字符串类型,示例如下:
let a = undefined;
let aStr = String(a);
console.log(aStr);
let b = null;
let bStr = String(b);
console.log(bStr);
console.log(String(520));
String
方法类似于toString
方法,不会修改变量中存储的数据,返回的是数据的拷贝经过转换之后的结果
- 不论是什么类型的变量还是字面量,均可以通过使用
+
运算符连接一个空字符串来转换为字符换,示例如下:
let num = 520;
console.log(num + "");
let isTrue = false;
console.log(isTrue + '');
console.log(undefined + "");
此方法本质上是浏览器在底层调用了
String
方法
数值
- 使用
Number
方法可以将 String、Boolean、Undefined 和 Null 类型的变量或字面量转换为数值类型,示例如下:
let str = "520";
let numStr = Number(str);
console.log(typeof numStr);
console.log(typeof Number("1024"))
let strNothing = "";
let numNothing = Number(strNothing);
console.log(numNothing); // 0
let strEverything = "520Love You";
let numEverything = Number(numEverything);
console.log(numEverything); // NaN -> Not a Number
let bool = true;
let numBool = Number(bool);
console.log(numBool); // 1
bool = false;
numBool = Number(bool);
console.log(numBool); // 0
let nullVar = null;
let numNull = Number(nullVar);
console.log(numNull); // 0
let xVar = undefined;
let numX = Number(numX);
console.log(numX); // NaN
如果被转换的字符串为空(或任意数量的空格),那么结果为 0,如果被转换的字符串不仅为数字,那么结果为 NaN;如果被转换的类型为 Boolean 类型,如果值为 true,那么结果为 1,如果值为 false,那么结果为 0;如果被转换的类型为 Null 类型,那么结果为 0;如果被转换的类型为 Undefined 类型,那么结果为 NaN(Number 类型)
- 不论是什么类型的变量还是字面量,均可以通过在变量或字面量之前放置
+
或-
运算符,将其转换为数值类型,示例如下:
let a = "520";
let numA = +a;
console.log(numA); // 520
let b = "520";
let numB = -b;
console.log(numB); // -520
console.log(+""); // 0
此方法本质上是浏览器在底层调用了
Number
方法,转换结果的规律与使用Number
方法相同,值得注意是,如果使用的是-
运算符,那么结果的符号为相反的,即如果原来是正数,那么转换之后为负数
- 可以使用
parseInt
或parseFloat
方法将不仅有数值的字符串中的数值内容提取出来,区别在于parseInt
只能将结果转换为整型,而parseFloat
只能将结果转换为整型或实型(由字符串中的内容决定),示例如下:
let a = "520Love you";
let numA = parseInt(a);
console.log(numA); // 520
let b = "520.1314Love you";
let numB = parseInt(b);
console.log(numB); // 520
numB = parseFloat(b);
console.log(numB); // 520.1314
let c = "1314Forever";
let numC = parseFloat(c);
console.log(numC); // 520
let d = "Love1314Forever";
let numD = parseInt(d);
console.log(numD); // NaN
let e = true;
let numE = parseInt(e);
console.log(numE); // NaN
方法
parseInt
与parseFloat
从左至右处理字符串,在遇到非数值时立刻停止,如果在停止之前没有出现数值,那么结果任然为 NaN,值得注意的是,不论被转换的数据类型是什么,parseInt
与parseFloat
方法均会将其作为字符串来处理,因此结果可能与预期不同
布尔
使用 Boolean
方法可以将 Number、String、Undefined 和 Null 类型的变量或字面量转换为布尔类型,示例如下:
let a = "xyz";
let boolA = Boolean(a);
console.log(boolA); // true
let b = " ";
let boolB = Boolean(b);
console.log(boolB); // true
let c = "";
let boolC = Boolean(c);
console.log(boolC); // false
let d = 520;
let boolD = Boolean(d);
console.log(boolD); // true
let e = -520;
let boolE = Boolean(e);
console.log(boolE); // true
let f = 0;
let boolF = Boolean(f);
console.log(boolF); // false
let g = NaN;
let boolG = Boolean(g);
console.log(boolG); // false
let h = undefined;
let boolH = Boolean(h);
console.log(boolH); // false
let i = null;
let boolI = Boolean(i);
console.log(boolI); // false
由上述示例可以发现:NaN、0、undefined、null 和空字符串被转换后的结果为 false,其它任何内容被转化后的结果为 true
最后
以上就是疯狂枫叶为你收集整理的JavaScript 笔记(二):基础类型JavaScript 笔记(二):基础类型的全部内容,希望文章能够帮你解决JavaScript 笔记(二):基础类型JavaScript 笔记(二):基础类型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复