- 变量是用于存放数据的容器,我们通过变量名获取数据,甚至数据可以修改
- 本质:变量是程序在内存中申请的一块用来存放数据的空间
1.变量初始化
var是一个JS关键字,用来声明变量。使用该关键字声明变量后,计算机会自动为变量分配内存空间。
//声明变量同时赋值为18var age = 18;//同时声明多个变量时,只需要写一个 var, 多个变量名之间使用英文逗号隔开。var age = 18, address ='火影村',salary = 15000;
2.声明变量特殊情况
2.1.undefined
//只声明,不赋值var age;console.log(age)
2.2报错
//不声明 不赋值 直接使用console.log(age)
2.3不声明
//不声明 只赋值age = 10;console.log(age);
3.变量的命名规范
1.由字母(A-Z,a-z),数字(0-9),下划线(_),美元符号($)组成,如:usrAge,num01,__name
2.严格区分大小写。 var app; 和 var App; 是两个变量
3.不能以数字开头。
4.不能是关键字,保留字。例如:var,for,while
5.遵循驼峰命名法。首字母小写,后面单词的首字母需要大写。myFirstName
[
](https://blog.csdn.net/Augenstern_QXL/article/details/119249534)
4.数据类型
JavaScript 是一种弱类型或者说动态语言。这意味着不用提前声明变量的类型,在程序运行过程中,类型会被自动确定。
var age = 10; //这是一个数字型var areYouOk = 'hello world'; //这是一个字符串
变量的数据类型是由 JS引擎 根据 = 右边变量值的数据类型来判断 的,运行完毕之后, 变量就确定了数据类型。
//JavaScript 拥有动态类型,同时也意味着相同的变量可用作不同的类型var x = 6; //x为数字var x = "hello world"; //x为字符串
JS 把数据类型分为两类:
- 基本数据类型(Number,String,Boolean,Undefined,Null)
- 复杂数据类型(Object)
4.1数字型Number
JavaScript 数字类型既可以用来保存整数值,也可以保存小数(浮点数)。
var age = 12; //整数var Age = 21.3747; //小数
4.1.2数字型进制
在JS中八进制前面加0,十六进制前面加 0x
// 1.八进制数字序列范围:0~7var num1 = 07; //对应十进制的7var Num2 = 019; //对应十进制的19var num3 = 08; //对应十进制的8// 2.十六进制数字序列范围:0~9以及A~Fvar num = 0xA;
4.1.3数字型范围
- JS中数值的最大值:Number.MAX_VALUE
JS中数值的最大值:Number.MIN_VALUE
console.log(Number.MAX_VALUE);console.log(Number.MIN_VALUE);
4.1.4数字型的三个特殊值
alert(Infinity); //Infinity(无穷大)alert(-Infinity); //-Infinity(无穷小)alert(NaN); //NaN - Not a Number ,代表任何一个非数值
Infinity ,代表无穷大,大于任何数值
- -Infinity ,代表无穷小,小于任何数值
- Nan ,Not a Number,代表一个非数值
4.1.5isNaN
用来判断非数字,并且返回一个值,如果是数字返回的是false,如果不是数字返回的是true
var age = 21;var isNotNum = isNaN(age)console.log(isNotNum); //false,不是一个非数字
var userName = "andy";console.log(isNaN(userName));//true,"andy"是一个非数字
4.2字符串型String
字符串型可以是引号中的任意文本,其语法为 双引号 和 单引号
var strMsg = "我爱北京天安门~"; //使用双引号表示字符串var strMsg = '我爱北京'; //使用单引号表示字符串
因为 HTML 标签里面的属性使用的是双引号,JS 这里我们更推荐使用单引号。
4.2.1字符串引号嵌套
JS可以用 单引号嵌套双引号,或者用 双引号嵌套单引号(外双内单,外单内双)
var msg1="'我爱中国'"var msg2='"统一台湾"'console.log(msg1)console.log(msg2)
4.2.2字符串转义符
类似HTML里面的特殊字符,字符串中也有特殊字符,我们称之为转义符。
转义符都是 \ 开头的,常用的转义符及其说明如下:
| 转义符 | 解释说明 |
|---|---|
| \n | 换行符,n是newline |
| \ \ | 斜杠\ |
| \ ’ | ’ 单引号 |
| \ ‘’ | ‘’ 双引号 |
| \ t | tab 缩进 |
| \ b | 空格,b是blank的意思 |
4.2.3字符串长度
通过字符串的 length 属性可以获取整个字符串的长度。
//通过字符串的length属性可以获取整个字符串的长度var msg1="'我爱中国'"console.log(msg1.length)
4.2.4字符串的拼接
字符串 + 任何类型 =拼接之后的新字符串
console.log('hello'+' '+'world');//hello Worldconsole.log('100'+'100'); //100100console.log('100'+100); //100100console.log(100+100) //200
var age = 18;console.log('我永远'+age+'岁');
- 我们经常会将字符串和变量来拼接,因为变量可以很方便地修改里面的值
- 变量是不能添加引号的,因为加引号的变量会变成字符串。
4.3布尔型Boolean
- 布尔类型有两个值:true 和 false ,其中 true 表示真(对),而 false 表示假(错)。
- 布尔型和数字型相加的时候, true 的值为 1 ,false 的值为 0。
var flag=trueconsole.log(flag+1) // 2 true当加法来看当1来看,flase当0来看
4.4未定义undefined
1.undefined 和 字符串 相加,会拼接字符串var strconsole.log(str); //undefinedvar variable = undefined;console.log(variable + 'world'); //undefinedworldconsole.log(variable + 18); //NaN
2.undefined 和 数字相加,最后结果是NaN
4.5空值null
一个声明变量给 null 值,里面存的值为空
var space = null;console.log(space + 'world'); //nullworldconsole.log(space + 1); // 1
4.6typeof
var num=18console.log(typeof num) //number
var str="hello"console.log(typeof str) //string
var bool=falseconsole.log(typeof bool) //boolean
var undefinedconsole.log(typeof undefined) //undefined
var str=nullconsole.log(typeof str) //object
4.7数据类型转换
我们通常会实现3种方式的转换:
- 转换为字符串类型
- 转换为数字型
- 转换为布尔型
4.7.1转换为字符串型
var num=10console.log(typeof num) //numbervar str=num.toString()console.log(typeof str) //string
var num=10console.log(typeof String(num))console.log(typeof num)
- toString() 和 String() 使用方式不一样
- 三种转换方式,我们更喜欢用第三种加号拼接字符串转换方式,这一方式也称为隐式转换
4.7.2转换为数字型
// 1.parseInt()consolo.log(parseInt('3.14')); //3取整consolo.log(parseInt('3.94')); //3,不会四舍五入consolo.log(parseInt('120px')); //120,会去掉单位// 2.parseFloat()console.log(parseFloat('3.14')); //3.14consolo.log(parseFloat('120px')); //120,会去掉单位//3利用Number(变量)var str ='123';console.log(Number(str));console.log(Number('12'));// 4.利用了算术运算 隐式转换//隐式转换是我们在进行算数运算的时候,JS自动转换了数据类型console.log('12'-0); // 12console.log('123' - '120'); //3console.log('123' - '120');// 123console.log(typeof ('123' * 1)); //number
4.7.3转换为布尔型
console.log(Boolean('')) //falseconsole.log(Boolean(0)) //falseconsole.log(Boolean(NaN)) //falseconsole.log(Boolean(null)) //falseconsole.log(Boolean(undefined)) //falseconsole.log(Boolean('0')) //trueconsole.log(Boolean('null')) //true
