欢迎光临散文网 会员登陆 & 注册

JavaScript基础语法-dom-bom-js-es6新语法-jQuery-

2021-12-21 23:50 作者:凸透镜厂商  | 我要投稿


JavaScript笔记:


10-JS输入输出语句 P10 - 00:41


alert():浏览器弹出警示框(输出)

console.log():浏览器控制器打印输出信息

prompt():浏览器弹出警示框,用户可以输入(输入,取会的数值为字符串型)

break:退出

prompt输入的是字符串



12-什么是变量 P12 - 00:06



13-变量的使用 P13 - 00:02



16-变量语法扩展 P16 - 02:44



var 变量名=赋值 :声明变量并赋值

声明多个变量

var 变量名=赋值

变量名=赋值

变量名=赋值

声明汴梁不赋值数值为空

变量由字母,数字,下划线,美元符号组成

变量严格区分大小写大小写不同不为同一个变量

变量不能以数字开头

变量不能是关键字和保留资

变量名必须要有意义

遵循驼峰命名法首字母小写,后面单词大写




20-数据类型导读 P20 - 00:16



21-数据类型简介 P21 - 02:29


js的变量数据类型是只有程序在运行过程中,根据后面的值来确定变量类型

js是动态语言,变量的数据类型可以转换


22-数字型Number P22 - 00:31



23-isNaN P23 - 00:00



24-字符串型String P24 - 00:00



26-字符串长度以及拼接 P26 - 01:56



29-boolean以及undefined和null P29 - 01:00



30-typeof检测变量数据类型 P30 - 00:00



32-转换为字符串类型 P32 - 00:05



33-转换为数字型parseInt和parseFloat P33 - 00:05



37-转换为布尔型 P37 - 00:18



简单数据类型:

整形:

数字前面加0是八进制

数字前面加0x是十六进制

Number:数字型 默认值:0 (里面包括整数和小数)

iInfinity无穷大

-iInfinity无穷小

NaN:非数字的

isNaN:判断是否是非数字,是数字返回false

不是数字返回true


boolean:布尔型 默认值:false

true当参与逻辑运算时当1使用

false当参与逻辑运算时当1使用


字符串

String:字符串行 默认值:""(必需要有"")

可以是''也可以是""

字符串嵌套:js可以用单引号嵌套双引号

\n:换行符

\\:斜杠\

\':单引号‘

\":双引号"

\t:tab缩进

\b:空格


Undefined:声明了变量a没有給值 默认值Undefined

Undefined和字符串相加结果为两个字符串合并

Undefined和数字相加结果为NaN


Null:声明了变量a的值为空值 默认值:null

Null和字符串相加结果为两个字符串合并

Null和数字相加结果为数字本身


length:检测字符串长度

多字符串之间可以用+号连接后面可以接任何类型


typeof:检测变量值为什么类型

使用方法console.log(typeof 变量名)


数据类型转换:

转换为字符串型

toString()用法:

var 变量名=需要改变类型的变量名.toString();

string()用法:

console.log(String(变量名));

用+号实现:

console.log(变量名+'')

转化为数据型:

parseInt()用法:(只能取整数)

console.log(parseInt(变量名));

parseFloat()用法:(可以取小数)

console.log(parseFloat(变量名));

Number用法:

console.log(Number(变量名));

利用算数运算进行运算:

console.log(变量+数字 )

转化为布尔型

Boolean()用法:

console.log(Boolean(变量))

代表空,否定的值会被转换为false

例如:

0,NaN,null,Undefined

其他值转换为true



39-拓展阅读之标识符关键字保留字 P39 - 00:52


标识符:

关键字:

js本身已近使用的字,不能充当变量名,方法名

保留子:

现在还不是关键字,但是未来可能会变成关键字

不能充当变量名,方法名




02-算数运算符 P42 - 00:14



03-表达式和返回值 P43 - 00:08



04-前置递增运算符 P44 - 01:52



08-比较运算符 P48 - 00:38



09-逻辑运算符 P49 - 00:21



11-逻辑中断逻辑与 P51 - 01:11



13-赋值运算符 P53 - 00:13



算数运算符:

+:进行加法运算

-:进行减法运算

*:进行乘法运算

/:进行除法运算

%:进行取余

浮点数在进行算数运算会出现问题

浮点数不能拿来比较是否相等

表达式:

由数字,运算符,变量组成的试子就是表达式

递增递减运算符:

递增:++

递减:--

可以放在变量前面或者后面

递增和递减必须配合变量使用

写在前面先加1在返回数值

写在后面先返回原值后自加11

单独使用没有区别

比较运算符:

>:大于

<:小于

>=:大于等于

<=:小于等于

==:等于(会吧字符串型的数据在转换成数据型)

!=:不等于

=== !==:全等于要求值和数据类型都相同

逻辑运算符:

&&:简称与 and 有一个为假就是假,两个都为真就是真

||:简称或 or 有一个为真结果为真

!:简称非 not 结果取反

逻辑中断:

与中断:

当由多个表达式时左边表达式可以确定结果时,就不再举行运算右边的表达式

如果第一个表达式为真则返回第二个表达式

如果第一个表达式为假则返回第一个表达式

除了0以外其他的数字都为真

或中断

如果第一个表达式为真则返回第一个表达式

如果第一个表达式为假则返回第二个表达式

赋值运算符:

=:赋值

+=,-=:加减一个数后在赋值

*=,/=,%=乘除取余后赋值

优先级:

小括号(())>一元运算(++ -- !)>算数运算(先*/后+-)>关系运算(> < <= >=)>相等运算(== != === !==)>逻辑运算(先&&后||)>赋值运算(=)>逗号运算(,)




15-流程控制分支结构导读 P55 - 00:10



16-流程控制 P56 - 00:31



17-if分支语句 P57 - 00:04



19-ifelse双分支语句 P59 - 00:00



21-if else if多分支语句 P61 - 00:07



23-三元表达式 P63 - 00:08



25-switch语句 P65 - 00:24



28-switch和ifelseif 区别 P68 - 00:10




流程控制

顺序结果:根据程序从上往下运行

分支流传控制:根据不同的条件执行不同的代码

if:if(条件表达式){

执行语句

}

判断多个条件:ifelse

if(条件表达式){

执行语句

}else{

执行语句

}

多分枝语句if else if:

if(条件表达式){


  执行语句


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


  执行语句


}else{

  

执行语句


}

三元表达式:

三元运算符:?:

语法结构:

条件表达式 ?表达式1 :表达式2

例子:

var num=10;

var result=num >5 ? '是的' :‘不是’


switch(表达式){

cese 选择值:

执行代码;

break;

cese 选择值:

执行代码;

 break;

cese 选择值:

执行代码;

break;

default:

执行代码;

break;

}

swich会把表达式和case后的值相对比如果匹配就执行相对于的语句,如果没有匹配的值会直接跳到default里面执行

表达式一般写成变量名

表达式里面的值要和选择值里面的数值要全等(数据类型和值都是一样的)

代码里面没有break不会退出switch执行后面的代码

switch和ifelseif的区别:

固定值使用switch,ifelseif更灵活,适合使用范围判断

switch执行效率更快,ifelseid语句执行较慢

当分支少的时候用switc,分支多时用ifelseif


01-循环导读 P69 - 00:09



03-for循环语法结构 P71 - 04:24



06-for循环重复执行相同代码 P74 - 01:26



07-for循环重复执行不同代码 P75 - 00:23




循环结构:

for循环:

for(初始化变量;条件表达式;操作表达式){

//循环体

}

初始化变量就是用var声明一普通的变量,通常用于作为计算器

条件表达式就是就是决定每一次循环是否执行

操作表达式是每次循环后最后执行的代码,经常用于我们计算器变量的更新

首先先执行初始化变量(只执行一次),然后执行条件表达式,然后执行循环体最后执行操作表达式

for执行不同代码



18-while循环 P88 - 00:21



20-do while循环 P90 - 00:13



25-命名规范以及语法格式 P95 - 00:41





while循环:

while(条件){

循环体

}

里面应该有操作表达式和计数器

do while循环:

do{

循环体

}

while(条件)

do while先执行在判断

和while循环一样需要操作表达式和计数器

如果是用来记数字或者是和计次数的三个循环基本相同,但是我们更喜欢用for

while和do..while可以做更复杂的判断条件;

S跳出本次循环,下一个循环还会执行

break:退出循环;

变量必须要有意义

变量用名词

函数用动词




02-什么是数组以及创建方式 P98 - 00:16



03-访问数组元素 P99 - 00:04



04-遍历数组 P100 - 00:16



05-数组长度 P101 - 00:08



09-数组新增元素 P105 - 00:08



将一组数据存储在一个变量名下的优雅方式

创建数组:

利用new创建变量

var 变量名 = new array ();

利用数组字面量创建数组(多用)

var 数组名=[];

数组里面的元素可以是任何类型

数组里面的元素要用逗号分开

访问数组里面的数据:

数组名[索引]

索引是由0开始的

当找不到这个索引是则会输出Undefined:

遍历数组:

就是把数组的元素从头到尾访问一遍

利用for循环来完成

获取数组长度

数组名.length-1,变量值为0

新增数组元素,修改length的长度

数组名.length=数组数量

新增数组元素,修改l索引号

数组名[索引]=增加的数据

如果没有就追加,有就是替换

不要直接给数组名赋值不然赋值会盖掉里面的数值新的数组是由0开始的,依次递增


15-复习交换两个变量值 P111 - 00:16



16-冒泡排序原理 P112 - 00:09



16-冒泡排序原理 P112 - 04:45


数组冒泡排序:

冒号排序就是一次比较两个变量,如果顺序错误就交换过来

 var arr=[5,8,3,2,9];

  for(var i=0;i<=arr.length-1;i++){

   for(var j=0;j<=arr.length-i-1;j++){

   if(arr[j]>arr[j+1]){

   var temp=arr[j];

   arr[j]=arr[j+1];

   arr[j+1]=temp;




18-函数导读 P114 - 00:15



19-为什么需要函数 P115 - 00:03



20-函数的使用 P116 - 00:11



22-函数的参数 P118 - 00:01


24-函数形参和实参匹配问题 P120 - 00:22



25-函数的返回值return P121 - 01:54



28-return终止函数并且只能返回一个值 P124 - 00:11




函数就是被封装了一段可以被重复执行调用的代码块。

函数是用分为两步声明函数和调用函数

函数名通常用动词

声明函数:

function 函数名(){

函数体

}

调用函数:

调用函数要加小括号

函数名();

函数的参数:

函数的参数分形参和实参

形参:

形参是用来接收实参的

function 函数名(形参1,形参2){

函数体

}

实参:

function 函数名(形参1,形参2){

函数体

}

函数名(实参1,实参2);

实参和形参的数量相同 则正常进行

如果实参的数量大于形参按顺序执行

如果实参的数量小于形参则没有实参的形参是Undefined 相加为NaN;

尽量将实参和形参的数量匹配

return将函数返回给调用者;

return只能返回一个值,当有两个值则返回后面的值

当需要返回多个值可以使用数组返回

函数没有return则返回Undefined

return不仅可以结束循环还可以结束函数


01-arguments使用 P127 - 00:08



arguments对象中储存了所有存贮过来的实参

arguments是以伪数组的方式展示的,他可以使用length来查询长度,他的储存方法是和数组一样的通过索引进行储存

但是他无法使用真正数组的一下方法比如pop() plsh()

他可以通过数组的遍历把里面的数值提取出来


06-函数可以调用另外一个函数 P132 - 00:29


在函数体里面直接调用另一个函数就可以直接调用


08-函数的两种声明方式 P134 - 00:06


函数的两种申明方式

1.利用函数关键字自定义函数(命名函数)

function 函数名(){

函数体

}函数名()


2.函数表达式(yimin)

var 变量名=function(){


}变量名()

函数表达式的方法声明函数,用的的变量名不是函数名

函数表达式声明跟声明变量差不多,只不过变量里面的是数值,函数表达式里面是函数

函数表达式也可以进行传递参数


09-作用域导读 P135 - 00:24



10-JavaScript作用域 P136 - 02:52


js的作用域就是代码名字在某个范围内起作用的效果

目的是为了提高程序的可靠性更重要的是减少命名冲突

全局作用域:

在script标签里面的就是全局作用域

局部作用域(函数作用域):

在函数内部就是局部作用域,这个代码只能在函数内起作用


11-全局变量和局部变量 P137 - 00:14


变量作用域分为全局变量和局部变量

全局变量:

在全局作用域下的变量,在全局都可使用

局部变量:

在局部作用域下的变量或者在函数内部的变量只有函数内才能使用

在函数内部没有声明就直接赋值的变量,属于全局变量可以直接调用

函数的形参也属于局部变量

从执行效率上来讲

全局变量只有完全关闭浏览器完全关闭才会销毁,比较占内存

局部变量执行完以后就会销毁,相对于全局变量更节省空间


12-JavaScript没有块级作用域就 P138 - 00:14


js只有es6的时候才有块级作用域

块级作用域就是{}里面的代码就是块级作用域,花括号外边的代码无法调用花括号里面的代码


13-作用域链 P139 - 00:09


作用域链就是内部函数访问外部函数的变量,采用的是链式查找的方式来决定取那个值,就是根据就近原则来选择变量值


16-预解析 P142 - 00:00


js引擎运行js分两步先预解析在进行代码执行

预解析:js引擎会把js里面所有var还有function提升到当前作用域的最前面

代码执行:按照代码书写顺序从上往下执行

与解析分为变量预解析(变量提升)和函数预解析(函数提升)

变量提升就是把所有变量声明搭配当前的作用域最前面,不提升赋值操作,只提升了声明

例如:console.log(mun)

var m=num=10;

相当于执行了:var=num;

console.log(mun)

num=10;

函数表达式声明变量应将调用写在函数后面

利用函数关键字声明变量则没有影响





20-利用对象字面量创建对象 P145 - 00:22



22-利用new Object创建对象 P147 - 00:00



23-我们为什么需要构造函数 P148 - 00:01



18-对象导读 P143 - 00:10


创建对象的三种方式

方法一利用字面量创建对象:

就是花括号{}里面包含了表达这个具体事物(对象)的属性和方法

创建方法 var 对象名= {};

里面的属性方法用逗号隔开

例如:

var obj={

uname:‘张三’,

age:18,

sex:男,

}

里面的属性或方法采用的是键值对的形式,键:属性名,值:属性值

使用方法后面跟的是一个函数

使用对象:

调用对象属性的两种方法: 对象名.属性名

对象名['属性名']

第二种方法调用属性要加单引号

调用对象的方法: 对象名.方法名()

必须要有后面的括号


方法二:利用new Object()创建函数

var 方法名= new object();

方法名.uname=‘张三’;

方法名. age=18;

方法名.sex=男;

这个方法是利用等号赋值的方法添加对象属性和方法分

每个属性结尾都有;分号结尾

创建时Objecta首字母需要大写

创建方属性和方法前面都需要加方法名


方法三:利用构造函数创建对象

前面的方法一次只能创建一个对象,使用构造函数可以一次创建多个方法

function 构造函数名(){

this.属性名=值

this.方法名= function(){

}

}

调用方法:

new 构造函数名();

调用方法的时候前面要有new 构造函数名()

对象名.方法名()

构造函数名首字母需要大写

属性和方法前面加this

构造函数不需要return就可以返回结果

调用够着函数必须使用new

只要调用的new 构造函数名()都会自己生成一个对象

构造函数泛指某一个大类,而对象指一个具体的事物 ,


21-变量属性函数方法的区别 P146 - 00:13


变量和属性的相同点:

他们都是用来储存数据的

变量和属性的不同点:

变量需要单独声明并赋值,使用时直接写变量名,单独存在

属性在对象里面,不需要声明,调用的时候使用时

对象名.属性名

函数和方法的相同点:都是实现某些功能做某些事

函数和方法的不同点:

函数时单独声明,并且调用,是单独存在的

方法在对象里面


27-new关键字执行过程 P152 - 00:06


new的执行过程:

new 构造函数可以在内存里面创建一个空的对象

this 就会指向刚刚创建的空对象

执行构造函数的代码,给这个对象添加属性和方法

返回这个空的对象


28-遍历对象 P153 - 00:17


for.....in循环:

for (变量 in 对象){

}

输出变量输出的属性名,输出对象名[变量]输出的属性值


01-内置对象导读 P155 - 00:06



02-什么是内置对象 P156 - 00:02


js中的对象分三种:自定义对象,内置对象,浏览器对象

内置对象就是js语言自带的对象,提供一些常用的或者基本而必要的功能


03-学会查阅MDN文档 P157 - 00:02


mdn,w3c

查阅该方法的作用

查看里面参数的意义和类型

查看返回值的意义和类型

自己动手试试


04-数学对象Math最大值方法 P158 - 00:04


Math对象:

它不是一个构造函数

常用的属性,不需要new来调用,可以直接使用里面的属性和方法

Math.PI():求圆周率

Math.floor():向下取整,往小取值

Math.ceil():向上取整,往大取值

Math.round():四舍五入就近取整

负数除了.5其他的都正常,只取大的

Math.abs():绝对值

Math.max/Math,min():求最大值最小值

会自动把数字字符串转换为数字


07-Math随机数方法 P161 - 00:06


Math.random() :返回一个随机的小数,这个方法里面不跟参数

他只能取到大于等于0小于1不能取到1

我们想要取到两个数之间的随机整数并能取到两个整数的公式:

function grty(min,max){

return Math.floor(Math.random()*(max-min+1))+min;

}

console.log(grty(1,10));


09-Date日期对象的使用 P163 - 02:06


Date():日期对象是一个构造函数,必须使用new来创建日期对象

如果没有参数返回系统当前时间

参数的写法:

数字型:var 变量名=new Date(2019,1,1)

字符型:var 变量名=new Date(’2019-8-9 8:8:8)

数字型用逗号隔开,字符串日期用-隔开,时间用:隔开

数字型返回的1值要比实际输入的大



11-格式化日期时分秒 P165 - 05:30



10-格式化日期年月日星期 P164 - 00:27


Date.getFullYear():获得当年

Date.gateMonth()获得当月(从0开始没有12,比正常少一个月,使用时要+1)

Date.getDate():获得当

天日期

Date.getDay():获取星期记(周日0到周六6)

Date.getHours():获得当前小时

Date.getMinutes():获取当前分钟

Date.getSeconds():获取当前秒钟

用函数封装一个可以返回当前时间的时分秒


12-Date总的毫秒数(时间戳) P166 - 00:09


date对象是基于1370年一月一日起的毫秒数

获得date总的毫秒数(时间戳)

1.通过valueof()获取:

var date =new date();

console.log(date.valueof());

2.通过getTime()获取

var date =new date();

console.log(date.getTime());

3.简单的写法(常用)

var date = +new Date()

cnosole.log(date1)

4.h5新增加的

console.log(Date.now());

毫秒数不会重复


15-数组创建的两种方式 P169 - 00:07


用Array创建数组

var arr=new Array();

(里面一个数代表数组长度,立马输入大于1个时输入的为数值)


16-检测是否为数组两种方式 P170 - 01:08


检查是否为数组的方法1:

instanceof 运算符 可以检测是否为数组使用方法为

console.log(数组名或者其他变量等 instanceof Array)

实例:

function reverse(arr){

if(arr instanceof Array){

var newArr=[];

for(var i=arr.length-1;i>=0;i--){

newArr[newArr.length]=arr[i];

}

return newArr;

}else{

return '这个参数不是数组格式';

}

}

console.log(reverse([1,2,3]));

console.log(reverse(1,2,3));

方法2: Array.isArray方法

Array.isArray是优先于instanceof

用法:Array.isArray(检测值)


17-添加数组元素 P171 - 00:19


1.数组名,push:从末尾添加一个数组值

使用方法:数组名.push(需要添加的值)

可以添加不止一个

push完毕后会返回数值,返回的是新数组的长度

2.数组名.unshift:在数组的前面添加一个数组值

使用方法:数组名.unshift(需要添加的值)

可以添加不止一个

unshift完毕后会返回数值,返回的是新数组的长度



18-删除数组元素 P172 - 00:05


1数组名.pop() 可以删除数组最后一个数组值

使用方法:数组名.pop()

里面没有参数;

pop完毕后会返回数值,返回的是你删掉的数组值

2数组名.shift() 可以删除第一个数组值

使用方法:数组名.shift()

里面没有参数;

shift完毕后会返回数值,返回的是你删掉的数组值


20-数组排序(放到冒泡排序之后... P174 - 00:09


1.reverse:翻转数组

用法:数组名.reverse()

2.sort:冒号排序

用法: 数组名.sort(funcation(a,b){

return a-b(升序)

或者return b-a(降序)

})


21-获取数组元素索引 P175 - 00:04


1.indexof:返回数组元素索引

用法:数组名.indexof(数组元素名)

只返回第一个满足条件的索引号

当没有找到元素是则返回-1

从前面开始获取元素

2.lastIndexof:返回数组元素索引

用法:数组名.lastIndexof(数组元素名)

只返回第一个满足条件的索引号

当没有找到元素是则返回-1

从后面开始获取元素


23-数组转换为字符串 P177 - 00:05


1.toString:将数组转换为字符串

用法:数组名.toString()

2.join:将数组转换为字符串,可以添加分隔符

用法:数组名.join(分隔符)

括号内不填默认为逗号


JavaScript基础语法-dom-bom-js-es6新语法-jQuery-的评论 (共 条)

分享到微博请遵守国家法律