1.1概述 变量是用来存储值的所在处,它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。JavaScript是一种弱类型或者说动态类型。这意味着不用提前声明变量的类型,在程序运行过程中,类型会自动确定。
var age = 10;//这是数字型
var myName = '黑子';//这是字符串型
在代码运行时,变量的数据类型是由JS引擎根据=右边的变量值的数据类型来判断的,运行完毕之后,变量就确定了数据类型。
JavaScript拥有动态类型,同时也意味着相同的变量可用作不同的类型;
var y = 10;//y数字型
y= 'lili';//y字符串型
1.2 简单数据类型(基本数据类型)
简单数据类型 | 说明 | 默认值 |
---|---|---|
Number | 数字型,包含整型值和浮点型值 | 0 |
Boolean | 布尔值类型 | false |
String | 字符串类型 | “” |
Undefined | var a;声明了变量a但是没有给值,此时a=undefined | undefined |
Null | var a=null;声明了变量为空值 | null |
- 数字型进制,最常见的有二进制、八进制、十进制、十六进制。
- JS 中八进制前面加0,十六进制前面加0x。
- 数字型的最大值:Number.MAX_VALUE
- 数字型的最小值:Number.MIN_VALUE
- Infinity代表无穷大
- NaN代表非数字
- isNaN()用来判断一个变量是否为非数字的类型,返回true或者false
- isNaN(x) x是数字,返回false;x不是数字,返回true;
字符串类型
JS可以用单引号嵌套双引号,或者用双引号嵌套单引号(外双内单,外单内双)
字符串转义符
转义符都是以\开头的,常用的转义符及说明如下:
转义符 | 解释说明 |
---|---|
\n | h换行符,n是newline的意思 |
\ \ | 斜杠\ |
\ ’ | ’ 单引号 |
\ " | " 双引号 |
\t | tab缩进 |
\b | 空格,b是blank的意思 |
字符串拼接
//1、计算字符串长度
var my='you is a cure pig';
console.log(my.length);//17
//2、拼接字符串
console.log('灵活' + '走位');//灵活走位
console.log('信你个' + 5);//信你个5
console.log(12 + 12);//24
console.log('12'+'12');//1212
console.log('you' + false);//youfalse
var age = 18;
console.log('我的年龄是' + age + '岁');
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>so hard three</title>
</head>
<body>
<script>
var flag = true;//flag布尔型
var flag1 = false;//flag1布尔型
console.log(flag + 1);//true参加加法运算当1看
console.log(flag1 + false);//false参加加法运算当0看
//如果一个变量声明未赋值 就是Undefined未定义数据类型
var str ;
console.log(str);
var varible = undefined;
console.log(varible + 'pink');//undefinedpink
console.log(varible + 1);//NaN undefined和数字相加最后结果是NaN
//null空值
var s = null;
console.log(s + 'pink');//nullpink
console.log(s + 1);//1
</script>
</body>
</html>
typeof用来检测变量类型
var num = 10;
console.log(typeof num);//number
var num1 = null;
console.log(typeof num1);//object
var num2 = undefined;
console.log(typeof num2);//undefined
字面量:是源代码中一个固定值的表示法,即字面量表示如何表达这个值。
数据类型转换
方式 | 说明 | 案例 |
---|---|---|
toString() | 转成字符串 | var num = 1; alert(num.toString()); |
String()强制转换 | 转成字符串 | var num = 1; alert(String(num)); |
加号拼接字符串 (也称为隐式转换) | 和字符串拼接的结果都是字符串 | var num = 1; alert(num + “我是字符串”); |
parseInt(string)函数 | 将string类型转成整数数值型 | parseInt(‘78’) |
parseFloat(string) | 将string类型转成浮点数值型 | parseFloat(‘78.21’ |
Number()强制转换函数 | 将string类型转换成数值型 | Number(‘12’) |
js隐式转换(-*/) | 利用算术运算转换成为数值型 | ‘12’-0 |
Boolean()函数 | 其他类型转换成布尔值;代表空、否定的值会被转换为false,如 ’ '、0、NaN、null、undefined,其余为true | Boolean(‘true’); |
解释型语言和编译型语言
计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所写的程序语言翻译成机器语言才能执行程序。程序语言翻译成机器语言的工具,被称为翻译器。
- 翻译器翻译的方式有两种:一个是编译,一个是解释。这两种方式之间的区别在于翻译的时间点不同
- 编译器是在代码执行之前进行编译,生成中间代码文件
- 解释器是在运行时进行及时解释,并立即执行(当编译器以解释方式运行的时候,也称之为解释器)
- Java属于编译型语言,它会先编译生成一个中间代码文件,全部完成后再执行代码;JavaScript是边解释边进行代码的执行。
标识符、关键字、保留字
- 标识符是指开发人员为变量、属性、函数、参数取的名字;标识符不能是关键字或保留字
- 关键字是指JS本身已经使用了的字,不能再用它们充当变量名、方法名。例:break、case、catch、continue、delete、do等
- 保留字是指预留的关键字,现在不是关键字,以后可能会成为关键字,也不能用作变量名或方法名