1.变量概述
1.1 什么是变量
1.2 变量是程序在内存中申请的一块用来存放数据的空间
2.变量的使用
1.声明变量
var age; //声明一个名称为age的变量
var是一个JS关键字,用来声明变量(variable变量的意思),使用它声明时,计算机自动分配内存
2.赋值
age = 10; //给age这个变量赋值为10
3.变量的初始化(声明+赋值)
var myname = '立志前端er';
注意:为了区分css,尽量在js中使用单引号,如:
4.同时声明多个变量
var age = 18,address = '火影村',gz = 2000;
5.声明变量其他情况
- 只声明不赋值:undefined
- 没声明没赋值: 会报错
- 不声明直接赋值:可以使用(不提倡)
6.变量命名规则
- 字母、数字、下划线、美元符号组成
- 严格区分大小写
- 不能数字开头,不能是关键字、保留字
- 需要有意义,也就是语义化
- 驼峰命名法:首字母小写,后面单词的首字母都需要大写,例如myFirstName
尽量不用name,有的浏览器默认是有含义的
3.变量的数据类型
3.1 简介
不同的数据占用空间不同,为了充分利用存储空间,于是定义了不同的数据类型
3.2 变量的数据类型
// int num = 10; java
// var num; // 这里的num 我们是不确定属于哪种数据类型的
var num = 10; // num 属于数字型
// js 的变量数据类型是只有程序在运行过程中,根据等号右边的值来确定的
var str = 'pink'; // str 字符串型
// js是动态语言 变量的数据类型是可以变化的
var x = 10; // x 是数字型
x = 'pink'; // x 字符串型
1.简单数据类型
- number 数字型
- Boolean 布尔型
- string 字符串类型
- undefined 声明但未赋值
- null 声明为空值
var a = null;
3.3 数字型
1.数字型进制
// 1. 八进制 0 ~ 7 我们程序里面数字前面加0 表示八进制
var num1 = 010;
console.log(num1); // 010 八进制 转换为 10进制 就是 8
var num2 = 012;
console.log(num2);
// 2. 十六进制 0 ~ 9 a ~ f #ffffff 数字的前面加 0x 表示十六进制
var num3 = 0x9;
console.log(num3);
var num4 = 0xa;
console.log(num4);
// 3. 数字型的最大值
console.log(Number.MAX_VALUE);
// 4. 数字型的最小值
console.log(Number.MIN_VALUE);
// 5. 无穷大
console.log(Number.MAX_VALUE * 2); // Infinity 无穷大
// 6. 无穷小
console.log(-Number.MAX_VALUE * 2); // -Infinity 无穷大
// 7. 非数字
console.log('pink老师' - 100); // NaN
NaN Not a number ,代表一个非数值
2.isNaN()函数
// isNaN() 这个方法用来判断非数字 并且返回一个值 如果是数字返回的是 false 如果不是数字返回的是true
console.log(isNaN(12)); // false
console.log(isNaN('pink老师')); // true
3.2 字符串类型
引号中可以是任意文本,但最好用’单引号’
1.字符串引号嵌套
可以用单引号嵌套双引号,也可以用双引号嵌套单引号
2.转义字符
- \n 换行符
- \ \ 斜杆
- ’ 单引号
- \ t tab缩进
- \b 空格
3.字符串长度(.length)
// 1. 检测获取字符串的长度 length
var str = 'my name is andy';
console.log(str.length); // 15
4.字符串拼接
字符串的拼接 + 只要有字符串和其他类型相拼接 最终的结果是字符串类型
console.log('沙漠' + '骆驼'); // 字符串的 沙漠骆驼
console.log('pink老师' + 18); // 'pink老师18'
console.log('pink' + true); // pinktrue
console.log(12 + 12); // 24
console.log('12' + 12); // '1212'
3.3 布尔类型
var flag = true; // flag 布尔型
var flag1 = false; // flag1 布尔型
console.log(flag + 1); // true 参与加法运算当1来看 结果为2
console.log(flag1 + 1); // false 参与加法运算当 0来看 结果为1
// 如果一个变量声明未赋值 就是 undefined 未定义数据类型
var str;
console.log(str);
var variable = undefined;
console.log(variable + 'pink'); // undefinedpink
console.log(variable + 1); // NaN undefined 和数字相加 最后的结果是 NaN
// null 空值
var space = null;
console.log(space + 'pink'); // nullpink
console.log(space + 1); // 1
3.4 数据类型的其他内容
1.检测变量的数据类型
使用typeof,如下:
var num = 10;
console.log(typeof num); // number
var str = 'pink';
console.log(typeof str); // string
var flag = true;
console.log(typeof flag); // boolean
var vari = undefined;
console.log(typeof vari); // undefined
var timer = null;
console.log(typeof timer); // object
// prompt 取过来的值是 字符型的
var age = prompt('请输入您的年龄');
console.log(age);
console.log(typeof age);
2.字面量
在源代码中一个固定值的表示方法,通俗来说,就是字面量表示如何表达这个值
- 数字字面量:8,9,10
- 字符串字面量:‘黑马程序员’ ‘大前端’
- 布尔字面量:true,false
3.5 数据类型转换
1.转换为字符串
- toString() 转换成字符串
- String() 强制转换
- 加号拼接字符串
// 1. 把数字型转换为字符串型 变量.toString()
var num = 10;
var str = num.toString();
console.log(str);
console.log(typeof str);
// 2. 我们利用 String(变量)
console.log(String(num));
// 3. 利用 + 拼接字符串的方法实现转换效果 隐式转换(重要)
console.log(num + '');
2.转换为数字型
- parseInt(string)函数 将string类型转换成整数数值型
- parseFloat(string)函数 将string类型转换成浮点数数值型
- number()强制转换函数
- js隐式转换
// 1. parseInt(变量) 可以把 字符型的转换为数字型 得到是整数
console.log(parseInt('3.14')); // 3 取整
console.log(parseInt('3.94')); // 3 取整
console.log(parseInt('120px')); // 120 会去到这个px单位
console.log(parseInt('rem120px')); // NaN
// 2. parseFloat(变量) 可以把 字符型的转换为数字型 得到是小数 浮点数
console.log(parseFloat('3.14')); // 3.14
console.log(parseFloat('120px')); // 120 会去掉这个px单位
console.log(parseFloat('rem120px')); // NaN
// 3. 利用 Number(变量)
var str = '123';
console.log(Number(str)); //123
console.log(Number('12')); //12
// 4. 利用了算数运算 - * / 隐式转换
console.log('12' - 0); // 12
console.log('123' - '120'); //3
console.log('123' * 1); //123
3.转换为布尔型
console.log(Boolean('')); // false
console.log(Boolean(0)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log('------------------------------');
console.log(Boolean('123')); //true
console.log(Boolean('你好吗')); //true
console.log(Boolean('我很好')); //true