2020-07-13

HTML学习

day5-js基础语法

变量

1.标识符

有字母、数字、下划线和$组成,数字不能开头

2.变量

变量名  =  值
var  变量名  = 值
let  变量名  =  值
const  变量名  =  值

前三种定义变量的语法对比:
a.如果用这三种方法定义变量都是在块和函数的外面,没有区别(都是全局的)
b.如果用let定义在任何{}中的变量,都只能在当前{}中使用
c.用var定义在函数中的变量,只能在当前函数中使用
d.const定义的变量不能修改
e.用关键字定义变量的时候,可以不给变量赋值,默认值是undefined

运算符

运算符:数学运算符、比较运算符、逻辑运算符、赋值运算符

1.数学运算符

+
-
*
/
%
++  ——  变量++/++变量  变量=变量+1   
--  ——  变量--/--变量  变量=变量-1

注意:++/--写在前面和后面在运算式中可能意义不一样

2.比较运算符

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

注意:
a.== —— 判断值是否相等(如果比较类型不同,会先转换成相同类型再看这两个数据是否相等)
b.=== ——相当于python的==
c.js不支持表示范围的连写方式

3.逻辑运算符

&&(逻辑与)
||(逻辑或)
!(逻辑非)

4.赋值运算符

=
+=
-=
*=
/=
%=

5.运算符优先级

运算符优先级和python一样的

分支结构

js中的分支结构有两种:if语句、switch语句

1.if语句

a.if单分支:

if(条件语句){
满足条件要执行的代码块
}

b.if双分支

if(条件语句){
满足条件要执行的代码
}else{
不满足条件要执行的代码
}

c.if多分支结构

if(条件语句1){
代码块1
}else if(条件语句2){
代码块1
}else if(条件语句3){
代码块3
}...
else{
代码块N
}

2.switch语句

switch(表达式){
    case 值1:{
代码块1
}
case 值2:{
代码块2
}
case 值3:{
代码块3
}
...
default:{
代码块N
}
}

执行过程:
先计算表达式的结果,让结果依次和每个case后面的值进行比较,如果那个case后面的值和表达式的值相等,就将这个case作为入口,依次执行后面所有的代码块,直到结束或者遇到break为止。如果没有一个是相等的,就将default作为入口,依次执行后面所有的代码块,直到结束或者遇到break为止。

循环结构

js中的循环结构有两种:while循环、for循环

1.while循环

a.while循环

while(条件语句){
循环体
}

b.do-while

do{
循环体
}while(条件语句)

2.for循环

a.python中的for

for (变量  in 序列){
循环体
}

和python的区别:变量取到的是下标或者key(属性名),取到的不是元素
b.c语言中的for

for(表达式1;表达式2;表达式3){
循环体
}

3.循环中的关键字break、continue

用法和python一模一样

函数

1.函数的定义

function  函数名(参数名1,参数名2,参数名3,...){
函数体
}

注意:关键字参数不可用,可以参数赋默认值

2.函数调用的实参和形参

js中的每个函数在调用的时候实参的个数都可以是任意多个;
实参个数比形参少:没有实参的形参是undefined
实参个数比形参多:会将前面的实参依次赋值给形参
js中每个函数中都有一个变量arguments用来保存当前函数被调用的时候接受到的所有的实参(类型可以看成数组)

3.匿名函数

function(参数名1,参数名2,参数名3,...){
函数体
}

4.箭头函数

(参数名1,参数名2,...)=>{函数体}
(参数名1,参数名2,...)=>返回值

常用数据类型

js中常用的数据类型:数字、布尔、字符串、数组、对象

typeof(数据)  ——  获取数据对应的类型名

1.数字类型:Number

js中所有的数字对应的类型都是Number

2.布尔:Boolean

只有 true 和 false 两个值,true本质就是数字1,false本质就是数字0

3.字符串:String

使用单引号或者双引号引起来的字符集
支持转义字符

字符串的属性和方法

1.length —— 获取字符串的长度
2.字符串.charAt(下标) —— 返回指定下标对应的字符
3.字符串1.concat(字符串2,字符串3,字符串4,...) —— 将所有字符串拼接在一起产生一个新的字符串
4.字符串.match(正则表达式)
正则表达式对象.test(字符串) —— 判断字符串和正则是否匹配,返回值是布尔
5.字符串1.replace()
注意:正则的后面加g是全局匹配,加i是忽略大小写,gi —— 既做全局匹配,又忽略大小写
6.字符串.slice(开始下标,结束下标) —— 字符串切片

4.类型转换

1.类型名(数据) —— 将数据转换成指定类型
2.数字类型转换
parseInt(数据) —— 将数据转换成整数(直接保留整数部分)
parseFloat(数据) —— 将数据转换成小数
Math.ceil(小数) —— 向上取整
Math.floor(小数) —— 向下取整
Math.round(x) —— 四舍五入
Math.random() —— 产生0~1的随机数

数组

1.数组(Array)

js中的数组就相当于python中的列表

2.查

a.查单个元素
b.遍历

数组.forEach(function(元素,下标){
每获取一个元素,执行一次的代码段
})

3.增

a.数组.push(元素) —— 在数组的最后添加一个元素
b.数组.splice(下标,0,元素1,元素2,元素3,...) —— 在指定下标前插入指定元素

4.删

a.数组.pop()
b.数组.splice(下标,删除个数)

5.改

和python一样

对象

1.对象字面量(相当于python的字典)

属性名1:属性值1
属性名2:属性值2
...

注意:属性名可以不加引号,可以像字典一样获取元素的值,也可以像对象一样获取元素的值

2.构造方法(类似类) —— 用来创建对象的函数

function  类名(){
this.属性  =  值  ——  添加属性
this.方法  = 函数   ——  添加方法
return  this
}
调用:调用之前加 new 才会创建对象

直接调用普通函数的时候,this就是窗口对象(是唯一的)
通过new去调用,this就是当前对象

3.对象属性的增删改查

a.查
b.增、改
c.删

4.给指定类的所有对象添加属性和方法

类型名.prototype.属性名  =  值

给指定类所有的对象添加指定的属性

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355