变量
记录某一个之后会变量的数据,在JS中我们可以定义一个变量
在js中声明一个变量使用var关键字(variable单词的缩写)变量的赋值:使用 = 给变量进行赋值;
var name = www
// 也可以分开写
var name
name = 'www'
// 同时声明多个变量(1)
var name, age
name = 'www'
age = 19
// 同时声明多个变量(2)
var name = 'www',age = 19
变量的命名规则
- 第一个字符必须是一个字母、下划线( _ )或一个美元符号( $ )
- 其他字符可以是字母、下划线、美元符号或数字
- 不能使用关键字和保留字命名
- 变量严格区分大小写
变量命名规范(建议遵守)
- 多个单词使用驼峰标识
- 赋值 = 两边都加上一个空格
- 一条语句结束后加上分号
- 变量应该做到见名知意
变量的联系:定义变量,保存两个数字,并且对两个变量的数字进行交换
var num1 = 12
var num2 = 44
// 使用临时变量
var num3 = num1 // num3 = 12
num1 = num2 // num1 = 44
num2 = num3 // num2 = 12
// 不使用临时变量
num1 = num1 + num2 // num1 = 12+44 = 56
num2 = num1 - num2 // num2 = 56-44 = 12
num1 = num1 - num2 // num1 = 56-12 = 44
变量的使用注意
- 如果一个变量未声明就直接使用,那么会报错
console.log(message) // VM333:1 Uncaught ReferenceError: message is not defined
- 如果一个变量有声明,但是没有赋值,那么默认值是undefined
var info
console.log(info) // undefined
- 如果没有使用var声明变量也可以,但是不推荐(事实上会被添加到window对象上)
admin = 'why
console.log(admin)
console.log(window)
数据类型
有 8 种基本的数据类型(7 种原始类型和 1 种复杂类型)
Number、Sring、Boolean、Undefined、Null、Object(复杂数据类型)、BigInt、Symbol
typeof用来确定确定任意变量的数据类型,会返回下列字符串之一:
undefined表示值未定义; 只有一个 undefined 值的独立类型。
null表示未知的值;只有一个 null 值的独立类型
boolean表示值为布尔值; 用于 true 和 false
string表示值为字符串; 一个字符串可以包含 0 个或多个字符
number表示值为数值,用于任何类型的数字:整数或浮点数
object表示值为对象(而不是函数)或 null; 用于更复杂的数据结构
function表示值为函数;
symbol表示值为符号;
typeof()的用法:
可能还会遇到另一种语法:typeof(x),它与 typeof x 相同
typeof是一个操作符,并非是一个函数,()只是将后续的内容当做一个整体而已;
Number类型
var num = 12
var num2 = 21.32
var result = 12 / 2
var result2 = 2 * 4
除了数字和浮点数,还包括所谓的“特殊数值”也属于Number类型
Infinity:代表数学概念中的 无穷大 ∞,也可以表示-Infinity;比如 1/0 得到的就是无穷大
NaN:NaN 代表一个计算错误,它是一个错误的操作所得到的结果;比如字符串和一个数字相乘
数字表示的范围:
- 最小正数值:Number.MIN_VALUE,这个值为: 5e-324,小于这个的数字会被转化为0
- 最大正数值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308
isNaN 用于判断是否不是一个数字。不是数字返回true,是数字返回false。
String类型
字符串必须被括在引号里,有三种包含字符串的方式
双引号:"Hello"
单引号:'Hello'
反引号:``
// 如果在字符串里面本身包括单引号,可以使用双引号;如果在字符串里面本身包括双引号,可以使用单引号;
var meg = "我是'www'"
一些有特殊功能的字符可以通过转义字符的形式放入字符串中
**字符串本身的属性和方法
// 字符串拼接,通过+运算符
var hello = '你好呀'
var meg = '大笨蛋'
var helloMeg = hello + meg
// 获取字符串长度
console.log(helloMeg.length)
Boolean类型
Boolean(布尔)类型用于表示真假:仅包含两个值true 和 false,
1为真,0为假
Undefined类型
只有一个值,就是特殊值 undefined
如果我们声明一个变量,但是没有对其进行初始化时,它默认就是undefined
// 如果变量刚开始什么都没有,我们可以初始化为0、空字符串、null等值
var message
console.log(message) // undefined
Object类型
Object 类型是一个特殊的类型,其他的数据类型我们通常称之为 “
原始类型”,我们通常把它称为引用类型或者复杂类型; Object往往可以表示一组数据,是其他数据的一个集合
// 原始类型数据的初始化转为布尔值,都是false
var info2 = {
num:0,
age:''
}
if(age){ // age|num->都是false
console.log('分支语句不会执行')
}
// 初始化为空对象,转为布尔值是为ture
var book = {}
if(book){ // ture
console.log('book为ture打印')
}
Null类型
null类型通常用来表示一个对象为空,建议初始化为null,null转为布尔值为false
- null当一个变量准备保存一个对象,但是这个对象不确定时,我们可以先赋值为null
- undefined通常只有在一个变量声明但是未初始化时,它的默认值是undefined才会用到
console.log(typeof null) //object
数据类型的转换
字符串转换
- 隐式转换
字符串和其他类型进行+操作:运算符左右两边有一个是字符串,另一边会自动转成字符串进行拼接
var num = 11
var str = num + '' // typeof str->string
某些函数的执行也会自动将参数转为字符串类型
-
显式转换
调用String()函数
var num1 = 9999
var str1 = String(num1)
调用toString()方法
数字转换
- 隐式转换
在算数运算中,通常会将其他类型转换成数字类型来进行运算
var num = '12'
var num2 = '2'
var result = num + num2 // 122
var result = num * num2 // 24
var result = num / num2 // 6
- 显示转换
使用Number()函数来进行显式的转换
var num = '33'
var result = Number(num) // typeof result-> number
其他类型转换数字的规则
console.log(Number(' 123 ')) // 123
console.log(Number('abc123')) // NaN
console.log(Number('')) // 0
布尔值转换
- 隐式转换
转换规则如下:
// 一些编程语言(比如 PHP)视 "0" 为 false。但在 JavaScript 中,非空的字符串总是 true
console.log('0') // ture
调用 Boolean(value) 显式地进行转换
var result = Boolearn(null) // false