JavaScript基础~

1 JavaScript

1 Javascript 简介

1.1 javascript特点

动态,弱类型,解释性,基于对象的脚本语言。

**动态:**程序执行时候才会确定数据类型。

**弱类型:**数据类型可以自动转换。

**解释型:**边编译,边运行,开发效率更高。

**脚本:**一般都是可以嵌在其他编程语言中执行。

1.2 javascript 组成

ECMAscript, 语法标准

DOM,文档对象模型

BOM,浏览器对象模型

1.3 javascript运行环境

浏览器或者Node.js

1.4 script使用

行内式,内嵌式,外链式

2 变量

2.1 数据,直接量,变量

**数据:**计算机计算的数据,所有信息都需要用数据表示,参与运算的数据进入内存。

**直接量:**直接使用数据就是直接量。

**变量:**命名,并通过名字来使用数据。

2.2 变量的意义

1.方便数据多次使用。
2.可以延长在内存中的时间,多次使用数据保证一致性。

2.3 变量的语法

1.使用关键字var声明
var a = 1;

2.4 变量的命名规范(标识符的命名规范)

1 强制规范
变量名必须由数字,字母,下划线,$组成,不能以数字开头;
变量名不能是关键字或保留字
--关键字:在javascript中具有特殊意义的词
--保留字:将来可能在javascript中具有特殊意义的词
2 建议规范
驼峰命名法;帕斯卡命名法
小驼峰命名法(用于命名变量);大驼峰命名法(用于命名类名)

3 数据类型

3.1 数据类型划分

1 原始类型:
number			数字
string			字符串
boolean			布尔值
null			空
undefined		未定义
2 对象类型
Function		函数
Array			数组
Object			对象
...

3.2 判断数据类型

typeof(数据)

**注:**null使用typeof判断得到的结果是’object’

3.3 number数值类型

1 整型
899 			//十进制表示的整型
023				//八进制表示的整型
0xa8			//十六进制表示的整型
2 浮点型

带有小数的就是浮点数。浮点数运算存在精度问题

3 科学计数法表示

3.45e4,3e-2

4 NaN(not a number)

NaN是number类型中的一个值,也属number类型,不是一个有效数字。

特点:

NaN与任何数进行任何计算,结果仍然是NaN.
NaN与任何数都不等,与自身也不等.

isNaN()函数:

判断一个数据是不是NaN,结果返回值为布尔值。
5 javascript中数字的有效范围
-1.7976931348623157e308 ~ 1.7976931348623157e308;
最小正数 5e-324 ,接近0;
Infinity(无穷),属于无效数字;
isFinite(),判断一个数字是否是有效数字,返回布尔值

3.4 string字符串类型

1 字符串表示方式
'xxxx'或者"xxx"
2 转义字符
\n		表示换行
\'		表示单引号
\"		表示双引号
\\		表示\本身
3.5 boolean布尔类型
ture		是,正确
false		否,错误

4 数据类型转换

4.1 数据类型转换规则

1 其他类型转number 类型 Number(),parselnt()

string转number:

纯数字字符串可以转换为数字,包括科学计数法,十六进制,八进制;
''-->0;
其他字符串转为 NaN;
字符两端的空格在转换时会取消,字符中间空格不会取消

boolean转number:

ture-->1;
false-->0

undefined转number:

NaN
2 其他类型转为string类型
数据变成相应的字符串,内容为数据内容
3 其他类型转为boolean类型

number转Boolean:

0,NaN--->false;
其他为ture

string转Boolean:

''-->false;
其他为true

null转Boolean:

false

undefined转Boolean:

fasle

4.2 数据类型隐式转换

5 运算符

5.1 运算符

1 运算符:

进行运算,运算符号(+,-,*,/);

与运算符一起进行运算的数据(直接量,变量,表达式)称为操作数

2 表达式:
由数据,运算符组成的计算公式,并具有计算结果的功能;
一个变量,一个直接量也可作为表达式,原始表达式;
通过运算符可以将多个简单表达式组成复杂表达式;
有些表达式带有副作用,副作用:表达式除了得到计算结果,还会对参与表达式的数据本身进行修改,由表达式中的运算符决定

5.2 运算符分类

1 按照运算符需要的操作数个数
一元运算符(一目);二元运算符(二目);三元运算符(三目)
2 按照运算符的功能
算术运算符
比较运算符(关系运算符)
逻辑运算符
赋值运算符
位运算符
其他运算符

5.3 算术运算符

+,-,*, /,%,+(正),-(负),++,–

累加累减:

i++:取操作数在累加之前的值,即先使用,再运算;
++i:取操作数在累加之后的值,即先运算,再使用

5.4 关系运算符(比较运算符)

>,<,>=,<=,==,===,!=,!==

比较大小的运算符对操作数的类型要求:

如果两个操作数都是string,按照字符串规则(即比较第一个字符的ASCII码)比较大小,不会发生类型转换;
如果两个操作数不都是string,自动转为number

部分unicode编码:

a -> 97;b-> 98;...
A -> 65;B-> 66;...

NaN比较大小:

NaN与任何值比较都为false,NaN与自身比较也为false

null比较大小:

null == 0 ;					//false
null == '';					//false
null == false;				//false
null == undefined;			//true

全等判断和相等判断:

相等判断:如果操作数类型不一致,自动转为number比较;
全等判断:如果操作数类型不一致,直接不成立,类型,值都一致才相等

5.3 逻辑运算符

&&,||,!

&&运算:

如果第一个操作数为ture,取第二个操作数为表达式值。

如果第一个操作数为false,取第一个操作数为表达式值,且第二个操作数不会执行

||运算:

如果第一个操作数为ture,取第一个操作数为表达式值,第二个操作数不会执行。

如果第一个操作数为false,取第二个操作数为表达式值。

5.4 赋值运算符

=,+=,-=,*=,/=,%=,+=(字符连接)
都存在副作用;
赋值运算符要求左边的操作数必须是变量形式,右边操作数可以是变量,直接量,表达式

5.5 其他运算符

, typeof + ?:(三目运算符)

加号,字符串连接符,正号

如果操作数只有一个,则正号;
如果操作数有两个,且其中至少一个操作数是字符串,则字符串连接符;
如果操作数有两个,且没有字符串,则正号

三目运算符:

操作数1 ? 操作数2 : 操作数3
操作数1为ture,取紧接后面的表达式;
操作数1为ture,取隔后面的后面的表达式

5.6 运算符优先级

一元运算符
算术运算符 *,/,% 高于 +,-
关系(比较)运算符  比大小 高于 判等
逻辑运算符 &&高于||
三元运算符
赋值运算符
逗号运算符
-

6 条件语句

6.1 单向分支

if (条件表达式) {
    ...
}

6.2 双向分支

if (条件表达式) {
	...
}else{
	...
}

6.3 多向分支 else if

if(条件表达式){
	...
}else if (条件表达式){
    ...
}

6.4 多向分支 switch case

switch (表达式) {
        case 表达式可能的值:语句...;break;
        case 表达式可能的值:语句...;break;
        case 表达式可能的值:语句...;break;
    default:语句...;
}
switch 后面表达式的值与case值相比较,相等则对应指向case后面的语句;
表达式的值没有与case对应值,则指向default,执行后面语句;
break可以结束当前case

7 循环语句

7.1 while循环

while (循环条件表达式){
    语句...;
}
--需要明确循环结束的条件;
--循环次数增加,越来越趋于结束循环

7.2 do while循环

do {
    语句...;
}while(循环条件表达式);
--do while 只有第一次没有判断,以后每一次循环都先判断;
--多次循环, whiledo while 的循环标记变量初始值和循环条件表达式都是一样的

7.3 for 循环

for(循环标记变量初始化;循环条件表达式;循环标记变量的变化){
    语句...;
}
--循环标记变量初始化在循环开始之前执行一次;
--循环条件表达式,每次循环先判断,同 while;
--循环标记变量变化,每次循环语句

8 跳转语句

8.1 break 语句

switch case 中使用,结束本次 case ;
在循环中使用,结束循环   

8.2 continue 语句

在循环中使用,跳出本次循环,下一次循环继续

9 异常处理

9.1 异常处理语句

try{
    
}catch (e) {
    //如果try中代码出现运行时错误,会执行到catch
    //变量e可以获取错误信息
}

9.2 主动抛出异常语句

throw '错误信息';
--主动定义运行时错误,浏览器可以捕获, try catch 可以捕获
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值