DAY23总结

day23 JavaScript

  • js是javascript的缩写,是一门专门用来控制网页内容的脚本语言并且是唯一的;是web标准中的行为标准,用来控制网页内容的变化
  • 内联js,写在标签的事件相关属性中,例如:onclick
  • 内部js,将js代码写在script标签中,script标签可以放在head标签中,也可以放在body标签中
  • 外部js,将js代码写在js文件中,通过script标签导入
  • js能做的事
    • 通过js修改标签内容
    • 修改标签属性
    • 修改标签属性
    • 添加页面内容
  • js标识符:要求由字母数字下划线组成,数字不能开头,一般符不建议使用,在jquery中有特殊意义
  • js中定义变量有两种情况:(注意在方法外不加var定义变量需对其进行赋值,否则出现xx is not defined)
    • 1.都加var,在方法内则是局部变量,在方法外则是全局变量。
    • 2.在方法内,加var为局部变量,不加var则是全局变量(在执行当前方法之后)
  • js关键字:for、if、var、while、func、true等
  • js数据类型:Number(包含所有数字,支持科学计数法)、String(字符串,用双引号或者单引号引起来的字符集,支持转义字符和编码字符)、Array(数组)、Object(对象)、Boolean(只有true和false两个值,代表真和假)
  • typeof:获取数据对应的类型
  • 一般情况下,一行只写一条语句,语句结束后可以有分号也可以没有,
  • parseFloat:将数据转为浮点数
  • parseInt:将数据转换成整数
  • 变量
    • 声明变量的语法:语法1:变量名=值 语法2:var 变量名/var 变量名=值
    • 说明:标识符,不能是关键字,采用驼峰式命名;声明变量如果没有给变量赋值(语法2才生效),变量的默认值是undefined
    • 同时声明多个变量:a=b=c=10,或者var a1,b1=1,c1=2,不支持a,b=1,2的写法,
  • 运算符:支持数学运算符,比较运算符,逻辑运算符,赋值运算符,位运算
    • 数学运算符:+,-,*,/,%,++,--,
      • 变量++,++变量
    • 比较运算符:>,<,==,!=,>=,<=,===,!==
      • js中的'=='判断两个数据的值是否相同,不管类型,’===‘既判断类型,又判断值,相当于python中的'==',!=和!==同上
    • 逻辑运算符:&&、||、!,即与或非运算,参与运算的变量均为布尔值
    • 赋值运算符:=,+=,-=,*=,/=,%=,与python一样
    • 三目运算符:条件表达式?值1:值2,判断表达式是否为true,为true返回值1,否则值2
  • 分支结构:有if和switch两种分支结构
//分支结构
if(条件语句){
  代码块
}

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

if(条件语句1){
  满足条件语句1执行代码块
}else if(条件语句2){
  满足条件语句2执行代码块
}else{
  不满足上述全部条件执行代码块
}

switch(表达式){
  case 值1:{
    代码块1
  }
  case 值2:{
    代码块2
  }
  case 值2:{
    代码块3
  }
  ......
  default:{
    代码块n
  }
}
//先计算表达式的结果(表达式不能是赋值运算语句),让这个结果从前往后与每个case后的值进行比较(比较时是用的'==='强等于),如果哪个case后的值和表达式的结果想等,就将这个case作为入口,依次执行后面每个对应的代码块,直到执行完最后一个代码块(包含default)或者遇到break为止,若每个case后的值都和表达式结果不相等,则执行default后的代码
  • 循环结构
//for-in循环
for(变量 in 序列){
  循环体
}//变量依次获取序列中元素的下标(或者对象中的属性名),取完为止,每取一次执行一次循环体

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

while(条件表达式){
  循环体
}

do{
  循环体
}while(条件语句)//先执行循环体,再判断条件语句是否为true,为true再执行循环体,否则跳出循环,do-while型循环至少会执行一次循环体
  • 函数
function funName(argsList){
  函数体
}
//支持位置参数传参,不支持关键字参数传参,不会报错,但顺序无效;参数可以设置默认值,但也需要放在没有默认参数的后面;不支持不定长参数

//匿名函数
func1 = function(参数列表){
  函数体
}
func1(传入参数)


a = function(参数列表){
  函数体
}(传入参数)
  • 字符串:单引号或双引号引起来的字符集,支持转义字符和编码字符,可以通过下标取到对应位置上的字符,但只支持非负整数的下标,下标越界不会报错,获取到的值是undefined;js中字符串不支持[]的切片语法,但有相应的方法
    • 字符串相关操作:加法:支持字符串和任何数据相加,如果另一个数据不是字符串,就转换为字符串再进行拼接操作;比较运算,和python一样比较字符编码
    • 字符串长度:字符串.length
    • 相关方法:字符串.slice()
  • 数组:相当于python中的列表
arr1 = [21,34,67,32,1,57,90]
//查
arr1[下标]

//遍历
for(index in arr1){
  console.log('index:'+index,arr1[index])
  
//增
arr1.push(100) //可以添加多个元素,并返回新数组的长度
console.log(arr1)
arr1.splice(插入位置的下标,0,插入的元素1,元素2...)  //在指定下标前插入指定元素,可以同时插入多个元素

//删除
laseElem = arr1.pop() //只能删除数组中的最后一个元素
firstElem = arr1.shift() //删除并返回数组第一个元素
arr1.splice(开始删除的下标,删除的个数)

//改
arr1[下标]=新值
}

//排序
//sort(函数对象)
//函数对象-函数,有两个参数(代表数组中的两个元素),返回值代表排序方法
nums = [21,45,26,75,1,35,65]
nums.sort(function(a,b){b-a})  //从大到小

nums.sort(function(a,b){a-b})  //从小到大
  • 对象:和python类的对象一样,主要由对象属性和对象方法组成
    • 创建对象:1.对象名={key1: value1, key2: value2...};2.对象名 = new 类型()
    • 构造方法:一个用来创建对象的函数,函数名相当于类名,首字母大写;函数的功能是通过this添加对象属性和对象方法,这里的this相当于self
//构造方法
functoin Person(name,gender,age){
  //通过new方式调用Person,这时的this是Person对象
  //若未使用new方式调用Person,这时的this是window对象
  this.name = name
  this.gender = gender
  this.age = age
  
  //添加对象方法
  this.eat = function(food){
    console.log(this.name+'is eating'+food)
  }
  return this
}
//使用构造方法创建对象
obj1 = new Person('aaa','male',18)  //在创建一个Person类时一定要使用new关键字

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

推荐阅读更多精彩内容