web_day5_总结

1.注释

// 单行注释:在注释文字前加
/*
多行注释
*/

2.标识符

由字母、数字、下划线和符组成,数字不能开头(一般不轻易使用,在jq有特殊的意义)

3.关键字

for if var constant while func true false等

4.数据类型

  1. Number(数字)、String(字符串)、Boolean(布尔)、Array(数组)、Obeject(对象)
    a.Number -- 包含所有的数字(包含整数、小数),支持科学计数。例如100,0.23
    b.String -- 既可以用单引号,也可以用双引号,支持转义字符和编码字符
    c.Boolean -- 只有true和false两个值,分别代表真和假
    d.Array -- 相当于python中的列表,[1,'he', true, [1,2,3]]
    e.Obeject -- 类似python中字典和对象的结合

2)typeof函数 -- 获取数据对应的类型

3)类型名(数字) -- 类型转换
parseFloat(数据) -- 将数据转换成浮点数
parseInt(数据) -- 将数据转换成整数

5.语句

一行一般情况下只写一条语句,语句结束后可以有分号也可以没有;
如果一行有多条语句,语句之间必须有分号
缩进无要求,大小写敏感

声明变量的语法

*1)语法1
* 变量 = 值
*
*2)语法2:
* var 变量名 / var 变量名 = 值
*
* 3)说明
* 变量名 - 标识符、不能是关键;驼峰式命名;
* 声明变量如果没有给变量赋值(语法2才支持),变量的默认值是undefined
*/
同时声明多个变量,赋相同的值
a = b = c = 10

同时声明多个变量,赋不同的值
var a1, b1=10, c1=20

js支持数学运算法、比较运算符、逻辑运算符、赋值运算符、位运算

1.数学运算符:+,-,*,/, %, ++, --

1)自加自减的坑
num = 10
num2 = num ++ // num2 = num; num += 1 返回值为旧值

num = 10
num2 = ++ num // num += 1; num2 = num 返回值为新值

2.比较运算符:>, <, ==, !=, >=, <=, !==, ===
console.log(5 == '5') // true == 判断值是否相等(不管类型)
console.log(5 === '5') // false === 判断值和类型是否相等

支持表示范围的连续写法

3.逻辑运算:&&(逻辑与运算)、||(逻辑或运算)、!逻辑非运算
和python中的and, or, not功能一样

4.赋值运算符:=,+=,-=,*=,/=,%=
和python一样

5.复合运算和python一样
数学运算符、比较运算符、赋值运算符、逻辑运算符、

6.三目运算符 - 表达式?值1:值2
判断表达式的值是否是true,如果为true整个运算的结果是值1,否则为值2

js有if和switch两种分支结构

1.if分支
/*1)结构1: if
js:
if(条件语句){
满足条件执行的代码块
}

python: if 条件语句:
满足条件执行的代码块
2)结构2 -- if-else
if (条件语句){
满足条件执行的代码块
}
else{
不满足条件执行的代码块}

  1. 结构3 -- if - elif ...else
    if (条件语句1){
    满足条件1执行的代码块
    }
    else if(条件语句2){
    满足条件2执行的代码块}
    else{其他代码块}

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

  1. 执行过程
    先计算表达式的结果,然后让这个结果按顺序从前往后和每个 case后面的值进行比较;如果哪个case的值和表达式结果相等,将这个case作为入口,依次后面每个所有的代码块;直到执行完最后一个代码块或者遇到break为止;如果每个case的值都和表达式的结果不相等,直接执行default后面的代码块(default可以不写)

js中循环分为for循环和while循环

  1. for循环
  • 1)python类似的循环:for-in 循环
    for(变量 in 序列){
    循环体
    让变量依次获取序列/对象中元素的下标(下标/属性名),一个一个取完为止
    取的是下标

2)c中的for循环
for(表达式1;表达式2;表达式3){
循环体
}
执行过程:先执行表达式1,再判断表达式2的值是否为true;如果为true执行循环体,执行完循环体再执行表达式3;再判断表达式2是否为true,如果为true执行循环体,执行完循环体再执行表达式3;再判断表达式2是否为true,如果为true执行循环体,执行完循环体再执行表达式3;以此类推,直到表达式2的结果为false,循环结束.

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

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

执行过程:执行循环体,判断条件语句是否为true,再执行循环体; 执行完循环体,又判断条件语句是否为true; 依次类推,直到条件语句为false循环结束

函数

1.语法
function 函数名(参数列表){
函数体
}

位置参数有效
关键参数不报错,但是顺序无效
参数可以设置默认值(有默认值的参数要在后面) NaN(无效数字)
不支持不定长参数
声明函数其实就是声明一个类型是function的变量

2.匿名函数
function(参数列表){}

字符串

单引号或者双引号引起来的字符集,支持转义字符和编码字符

  1. 获取字符
    字符串[下标]
    1)下标只有正值,没有负的
    2)下标越界不会报错,获取到的值是undefined
  1. js中不支持[]对应的切片语法,但是有相应的方法

2.相关操作
1)加法运算
支持字符串和任何数据相加,不是字符串类型的数据先转化为字符串再拼接
2)比较运算:和python一样
3)字符串长度:字符串.length

3.相关方法
1)字符串.match(正则)
2)字符串.slice(开始下标,结束下标)

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

1.查
获取单个元素:数组[下标]
遍历

2.增
数组.push(元素) -- 在数组的最后添加元素
数组.splice(下标, 删除个数,插入元素1,插入元素2) -- 在某个下标的前面去插入元素

3.删
数组.pop()
取出数组中第一个元素 -- 数组.shift()
数组.splice(下标,个数) -从指定下标开始删除对应个数的元素

4.改
数组[下标] = 值

5.排序 -- sort(函数对象)
函数对象 -- 函数,有两个参数(代表数组中的两个元素)。返回值就是排序方法
数组元素从大到小排序 -- 降序
new_nums = nums.sort(function(a, b){return b-a})
数组元素从小到大排序 -- 升序
new_nums = nums.sort(function(a, b){return a-b})

对象

1.什么是对象
和python中类的对象一样,主要由对象属性和对象方法组成

2.创建对象
1)对象值
obj1 = {
name:'xm',
age:18,
gender:'male'
}
2)new 类型()
obj2 = new Object()

3.构造方法 -- 一个用来创建对象的函数
1)函数名相当于类名,首字母大写
2)函数的功能是通过this添加属性和对象方法(这儿的this就相当于self)
3 ) 返回值this
function Person(name, age, gender='男'){

    // 通过new的方式调用,this:Person{}
    // 直接调用:this : window
    
            console.log(this)
    
    
    this.name = name;
    this.age = age;
    this.gender = gender;
    
    this.eat = function(food){
        console.log(this.name + '在吃' + food)
    }
    
    return this

}

4)使用构造方法创建对象
对象 = 构造方法()
p1 = new Person('xm', 18)
p2 = new Person('xh', 16, 'girl')

5)通过使用对象使用对象属性和调用对象方法

p1.name = 'xhh'
console.log(p1.name, p1['name'])

6.添加/修改属性
对象.属性 = 值

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

推荐阅读更多精彩内容