浏览器中有Js解释器
Js 是 解释一句执行一句的,所以报错处停止执行。
Js 是 客户端的脚本语言
浏览器输入输出
console.log('123');(console控制台和log日志)
输出多个变量用 , 分隔即可
alert('警示框');
prompt('弹出用户输入框');
取值为字符型(string)
变量
变量:程序在内存中申请的一块用来存放数据的空间。
变量的使用
:
-
声明
-
(用var(variable)关键字声明变量)
-
var age;
-
-
赋值
-
age = 18;
-
-
声明一个变量并赋值,我们称之为变量的
初始化
。-
var age = 18;
-
-
声明多个变量,用
,
逗号隔开-
var age1 = 18, age2 = 18, age3 = 18;
-
-
特殊的变量声明情况
-
// 只声明,未赋值 var age; console.log(age);// undefined(类型为未定义) // 直接使用 console.log(age); // 报错 // 没用var关键字 age = 18; console.log(age); // 18
-
-
变量命名规范
- 由字母(A-Za-z)、数字(0-9)、下划线(_)、美元符号($)组成,
- 严格区分大小写。
- 不能以数字开头。18age是错误的
- 不能是关键字、保留字。例如:var、for、while
- 变量名最好有意义。age
- 遵守驼峰命名法。首字母小写,后面单词的首字母需要大写。myFirstName
数据类型
在计算机中,不同的数据所需占用的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型。
- Js属于弱类型语言
- Js是动态语言,变量的数据类型可以变化
- Js的数据类型根据值来判断。
简单数据类型 | 说明 | 默认值 |
---|---|---|
Number 数字型 | 包含整型值和浮点型值 | 如21、0.21、0 |
Boolean 布尔值类型 | 如true、false,等价于1和0 | false |
String 字符串类型 | 如注意咱们js里面,字符串都带引号 | “张三” |
Undefined | var a;,此时a=undefined声明了变量a但是没有给值 | undefined |
Null | vara=null;声明了变量a为空值 | null |
Number 数字型
-
八进制
- var num = 010; (:前面加0) // 8
-
十六进制
- var num = 0x10; (前面加0x) // 16
-
Js中的最大值
- Number.MAX_VALUE //1.7976931348623157e+308
- Number.MIN_VALUE // 5e-324
-
特殊值
-
无穷大:比最大值大 Infinity
-
无穷大:比最大值大 -Infinity
-
-
非数字
- NaN - 非数字 (Not a Number)
- console.1og(‘pink老师’-10); // NaN
-
isNaN(传参)
- 判断非数字
- 非数字 — 1
- 赎罪 — 0
- 判断非数字
String 字符串类型
- 字符串引号嵌套(双引号单引号间隔嵌套)
- “我’爱’你”
- 字符串转义字符 (均以\开头)
\n
换行符(n是newline的意思)\\
斜杠\\'
’ 单引号\"
" 双引号\t
制表符,tab缩进\b
空格,b是blank的意思
- length 返回字符串长度
- str.length
- 字符串的拼接 ( 字符串 + 其他类型相 = 字符串类型 )
- console.1og(‘沙漠’ + ‘骆驼’); //‘沙漠骆驼’
console.1og(‘pink老师’ + 18); //‘pink老师18’
console.log(‘pink’ + true); //‘pinktrue’
conso1e.1og(‘12’ + 12); //‘1212’
- console.1og(‘沙漠’ + ‘骆驼’); //‘沙漠骆驼’
Boolean 布尔值类型
只有 true 和 false 两种
Undefined 未定义 和 Null 空值
//undefined 未定义
var v undefined;
console.log(v + 'pink'); // 'undefinedpink'
console.log(v + 1); // NaN
undefined和数字相加最后的结果是 NaN
//null 空值
var n null;
console.log(n +'pink');// 'nullpink'
console.log(n + 1); // 1
typeof (运算符/关键字)
-
var num 10; console.log(typeof num); //number var timer null; console.log(typeof timer); //object
字面量
数组字面量 []
数字字面量 18
字符串字面量 ‘wo’
对象字面量 {}
数据类型转换
转换成字符串型
方式 | 说明 | 案例 |
---|---|---|
toString() | 属性 | num.toString |
String() | 函数 | String(num) |
加一个字符串 | 隐式转换 | num+’’(空值) |
转换成数字型
方式 | 说明 | 案例 |
---|---|---|
parselnt(string)函数 | 将string类型转成整数数值型 | parseInt(‘78’) |
parseFloat(string)函数 | 将string类型转成浮点数数值型 | parseFloat(‘78.21’) |
Number()强制转换函数 | 将string类型转换为数值型 | Number(‘12’) |
js隐式转换(- * /) | 利用算术运算隐式转换为数值型 | ‘12’ - 0 ‘12’ * 1(+不行) |
转换成布尔型
方式 | 说明 | 案例 |
---|---|---|
Boolean()函数 | 其他类型转成布尔值 | Boolean(‘true’); |
-
console.log(Boolean('')); //false console.log(Boolean(0)); //false console.log(Boolean(NaN)); //false console.log(Boolean(null)); //false console.log(Boolean(undefined)); //false //除了以上内容,其余的都为true console.1og(Boolean('小目'));//true console.log(Boolean(12));//true
1.标识(zhi)符
就是指开发人员为变量、属性、函数、参数取的名字。
标识符不能是 关键字
或 保留字
。
2.关键字
是指S本身已经使用了的字,不能再用它们充当变量名、方法名。
3.保留字
实际上就是预留的“关键字”,意思是现在虽然还不是关键字,但是未来可能会成为关键字,同样不能使用它们当变量名或方法名。
运算符
算数运算符
运算符(operator)也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号。
浮点数的精度问题
-
浮点数值的最高精度是17位小数,但在进行算术计算时其精确度远远不如整数。
-
所以:不要直接判断两个浮点数是否相等!
表达式
-
是由数字、运算符、变量等以能求得数值的有意义排列方法所得的组合
-
表达式最终都会有一个结果,返回给我们,我们成为
返回值
递增(减)运算符
前置递增(减)
- 先加加,后使用
let age = 18;
num = ++age;
console.log(num); //19
console.log(age); //19
后置递增(减)
- 先使用,后加加
let age = 18;
num = age++;
console.log(num); //18
console.log(age); //19
关系运算符
> >= <= < = == === != !==
符号 | 作用 | 用法 |
---|---|---|
= | 赋值 | 把右边给左边 |
== | 判断 | 判断两边值是否相等(注意此时有隐式转换) |
=== | 全等 | 判断两边的值和数据类型是否完全相同 |
逻辑运算符
逻辑运算符 | 说明 | 案例 |
---|---|---|
&& | “逻辑与”,简称"与" and | true&&false |
|| | “逻辑或”,简称"或” or | true||false |
!(取反) | “逻辑非”,简称"非" not | !true |
短路运算(逻辑中断)
逻辑与&&短路
- 遇假中断,返回假值,遇真继续,无假反最后值
逻辑或||短路
-
遇真中断,返回真值,遇假继续,无真反最后值
-
let num = 0; console.log( 123 || ++num); (短路中断,没有运行++num) console.log(num); // 0;
赋值运算符
赋值运算符 | 说明 | 案例 |
---|---|---|
= | var usrName=‘我是值’: | 直接赋值 |
+=、-= | 加、减一个数后在赋值 | var age 10;age+=5; //15 |
*=、/=、%= | 乘、除、取模后在赋值 | var age 2;age*=5; //10 |
运算符优先级
优先级 | 运算符 | 顺序 |
---|---|---|
1 | 小括号 | () |
2 | 一元运算符 | ++、! |
3 | 算数运算符 | 先*、/、% 后+、- |
4 | 关系运算符 | > >= < <= |
5 | 相等运算符 | == != === !== |
6 | 逻辑运算符 | 先&& 后 || |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |
流程控制
在一个程序执行的过程中,各条代码的执行顺序对程序的结果是有直接影响的。很多时候我们要通过控制代码的执行顺序来实现我们要完成的功能。
流程控制主要有三种结构,分别是顺序结构
、分支结构
和循环结构
,这三种结构代表三种代码执行的顺序。
分支结构
if语句
- 按照从大到小的判断思路
if(条件表达式){
//为真执行
//执行语句1
}else{
//执行语句2
}
//多分支语句
if(条件表达式)