day01
1.javaScript简称JS,是一个运行在客户端浏览器端的解释型弱类型面向对象脚本语言。
2.什么是解释型?什么是编译型?
①解释型:在运行程序之前,不需要检查语法是否正确,直接运行,遇到错误后停止后续代码运行。
②编译型:在运行程序之前,需要先检查语法是否正确,如果不正确,直接不运行。
3.什么是弱类型?什么是强类型?
①弱类型:变量保存的数据可以是随意的,数据类型由数据本身来决定。
②强类型:由数据类型来决定变量能保存什么数据。
4.面向对象
①对象名.属性名:
②对象名.方法名():
5.特点
①编写js的工具有很多种
②解释型
③弱类型
④面向对象
⑤可以做一切css完成不了的效果
6.如何使用js
①在html中写上一个script标签
<script>js代码</script>
②创建一个x.js文件,然后引入
<script src='x.js'>js文件</script>
7.输出方式/打桩输出/检查错误
①在控制台输出 console.log(输出的内容)
②在页面上输出 document.write(输出的内容)
缺点:绑定点击事件后,会替换掉原本已经布局好的html内容
③在浏览器自带的警告框输出 alert(输出的内容)
缺点:会卡住整个页面
8.变量和常量
①变量 创建后可以随时更改
when:以后反复使用的数据,需要提前存入一个变量中,在后续修改的时候也更加方便
why:为了方便
how:var 变量=值;
②常量 创建后不可以修改
how:const 常量=值;
③特殊
不能以数字开头
建议使用驼峰命名法或者下划线
命名要见名之意
如果变量名为name,那么不管数据类型是什么最后都会转为字符串
变量名不可以是关键字
变量名可以只创建不赋值,默认值为undefined
多个变量连续创建可以简写,中间用逗号隔开,最后用分号结尾
9.数据类型有哪些?分为两大类
①基本类型
Number 数字
String 字符串
Boolean 布尔
Null 空
Undefined 未定义
②引用类型
10.运算符
①算术运算符 +、-、*、/、%
%取余,两个数字相除取余数
任意数字%2判断奇偶数
取出某个数字的后n位
console.log(1234%10); //4
带有隐式转换,默认将左右两边转换为数字再运算
True -> 1 false-> 0 undefined -> NaN Null -> 0 "100" -> 100 100px -> NaN
NaN 参与任何算计运算结果为NaN,参与任何比较运算都为false
+运算符如果碰上一个字符串,左右两边会变为字符串然后进行拼接
②关系/比较运算符 >、<、>=、<=、==、!=、===、!==
在通过条件进行判断是否满足来进行不同的代码运行时使用
结果一定是布尔值
带有隐式转换,左右变为数字进行比较 数字<字母A-Z<字母a-z<汉字
如果左右两边是字符串,则按每个字符的十六进制Unicode号进行比较
NaN参与比较运算都为false 利用!isNaN来进行判断
undefined==null 结果为true 利用undefined === null来解决
③逻辑运算符
&& 与 全真为真,一假为假
|| 或 一真为真,全假为假
! 非
④赋值运算符 =、+=、-=、*=、/=、%=
i=i+1 -> i+=1
⑤自增自减运算符
每次固定+1
前++返回加了之后的值,后++返回的是加了之前的旧值
⑥位运算
左移m<<n -->m左移了n位 m*n^2
右移m>>n -->m右移了n位 m/n^2
day02
1.程序的流程控制语句
①顺序结构 自上而下
②分支结构 通过条件判断要走的分支
③循环结构 通过条件判断是否重复执行代码
2.分支结构
①if分支
if(条件){操作;}
if(条件){操作;}else{操作2;}
if(条件){操作;}else if(操作2;)else{操作3;}
注意:
分支只要满足了一个条件,就不会再执行其他代码
else if 想写多少写多少
else可以省略,但是不建议
分支可以嵌套
②Switch...case分支
switch(值/表达式){
case 值: 操作;
case 值2: 操作2;
default: 操作;
}
特殊:
默认只要一个case满足,后续所以操作都会全部做完,通过在每个case最后添加关键字break来解决。
case在做比较时不带隐式转换
default可以不写,但是不建议
③if分支和Switch分支的区别
Switch分支执行效率高,速度快,但是需要知道结果才能使用Switch分支
if分支可以做范围比较,但是执行效率慢,速度慢
3.三目运算
语法:
条件1?操作1:默认操作; if...else
条件1?操作1:条件2?操作2:默认操作; if..else if...else
注意:
默认操作不可以省略
如果操作比较复杂,不能使用三目运算。建议if分支或者Switch分支
4.强制转换
①.转字符串
E.toString(); E不能是undefined和null,undefined和null不能做任何的.操作
String(X); 完全等效隐式转换,是隐式转换的底层原理,不如+""
②.转数字
parseInt(str/num) 从左到右依次读取每个字符,碰到非数字就停止转换,如果第一个字符就是非字符则为NaN,不认识小数点
parseFloat(str) 从左到右依次读取每个字符,碰到非数字就停止转换,如果第一个字符就是非字符则为NaN,认识第一个遇到的小数点
number(x) 完全等效隐式转换,是隐式转换的底层原理,不如*1
③转布尔
boolean(x);万能的完全等效隐式转换,是隐式转换的底层原理,不如!!X 只有6个会转换为false undefined、null、NaN、false、""
day03
循环结构
反复执行相同或相似的操作
三要素:
循环条件
循环体
循环变量
三种循环
while循环
var 循环变量=x;
while(循环条件){
循环体;
循环变量变化;
}
特殊:死循环 while(true){操作}
如何退出循环 break 结束整个循环 continue 结束当前循环
for循环
for(var 循环变量=x;循环条件;循环变量变化){
循环体;
}
特殊:死循环 for(;;){操作;} 注意小括号内的;不能省略
while循环和for循环的区别
不确定循环次数的时候用while循环,确定循环次数的时候用for循环
两者原理都一样
do..while循环
var 循环变量=x;
do{
循环体;
循环变量变化;
}while(循环条件)
while循环和do..while循环的区别
第一次条件满足是二者都一样,第一次条件不满足时,do..while会执行一次而while不会执行
function(函数)
函数,也称之为方法,先定义好以后可以重复使用的代码
使用方法
定义函数
function 函数名(){
操作
}
调用函数
在js内部写函数名()
在html页面绑定点击事件,<e onclick="函数名()"></e> e可以是任何元素
何时使用
不希望打开页面立刻执行
用户自己触发
每一个独立的功能都封装为一个函数
带有形参的函数
function 函数名(形参,..){
操作;
}
形参:其实就是一个变量,但是不需要赋值
调用带形参的函数
函数名(实参,..)
注意:传参的时候,顺序不能乱,且实参和形参在数量和顺序上都得一一对应
不带形参的函数用于执行一些固定操作
带形参的函数根据传入的实参的不同来,执行操作结果略微不同
循环和函数的区别
循环几乎一瞬间就一一执行完毕
函数需要调用才会执行