JS学习笔记

1.js代码一般放在<head>中,有两种方式:一种实在<script></script>中直接写,另一种是在<script src="..."></script>中引入一个单独的js文件
2.注释:(1)// (2)/* */
3.数据类型:(1)Number:整数和浮点数 (2)字符串:''和"" (3)布尔值:true和false (4)比较运算符:==和=== 在js中应始终使用=== (5)空:null和undefined 大多数情况我们都使用null,undefined仅仅在判断函数是否传递情况使用 (6)数组:[]和new Array(1,2,3) 数组中可以放任意数据类型,数组的起始索引是0 (7)对象:对象是由键-值组成的无序集合,键只能是字符串,值可以是任意数据类型 (8)变量:var a=4;可以把任意数据类型赋值给变量,而且可以反复赋值,并且可以是不同的数值类型。这种变量不固定的语言是动态语言,相反的是静态语言(Java中)
4.日志打印:Console.log()
5.strict:由于不使用var修饰变量,变量作用范围就是指全局
6.字符串:' '和" ";(1)可使用转义字符\(2)` `可用来表示多行字符串 (3)模版字符串:模版字符串需要使用` `的形式,使用${name}拼接,避免了+使用的麻烦 (4)使用var s="hello" s.length可以获取字符串的长度 (5)还可以将字符串当成一个数组,获取某个角标位置的值,例如:var s="Hello" 打印s[2]得到l
7.数组:(1)js中的数组可以包含任意类型。给array.length=6,即给数组赋值一个新的长度,数组就会改变成新的长度了。对array元素的修改,会直接改在当前数组上,而对字符串的修改比如让其全部小写则是返回一个新的字符串(2)通过索引修改数组中某个元素的值,会直接修改数组中原来的值(3)如果通过索引赋值,索引超过了数组的大小,数组会被修改为新的大小长度,没有值的index的值会变为undefined,但是实际中我们应该注意不越界,避免麻烦(4)数组可通过调用indexOf()搜索制定元素的位置,若找不到返回-1(5)slice():用于截取数组,类似substring()(6)push():向数组末尾添加元素(7)pop():将数组中的最后一个元素删除(8)unshift():向数组头部添加元素 (9)shift():将数组的第一个元素删除掉 (10)sort():对数组进行排序 (11)reverse():对数组进行翻转,也就是掉个个(12)splice():splice(从哪个索引开始,删除几个元素,任意填写多个要添加的元素内容) (13)concat():把两个array连接起来,concat()可以接收任意个元素甚至是数组,最终返回一个新的数组而不会修改原来的数组 (14)join():可以把数组中的元素使用指定的字符串连接起来,类似var num=[1,2,3];num.join(‘-’);返回1-2-3 (15)多维数组:即数组中的某个元素也是个数组,就是多维数组。
8.对象:(1)对象是一个字符串,键值对,类似我们的json串;(2)如果对象的属性名不是一个有效的变量名,或者变量名包含特殊标点,应该使用''括起来,访问的时候也需要使用single[‘变量名’]这样的方式获取;(3)如果访问时候属性名不存在,会返回undefined;(4)js的对象是动态类型,可以灵活的添加、赋值、获取、删除 (5)可以通过in来判断某个对象是否有这个属性值,并返回boolean类型,例如'name' in xiaoming; in获取到的有可能不一定是这个对象本身的属性,而是通过继承获取到的父类属性 (6)hasOwnProperty():用于判断这个属性是不是这个对象本身拥有的,也是返回boolean类型
9.条件判断:if(){...}else if(){...}。注意:js把null、undefined、0、NaN和空字符串' '当作false,其余的值在if()中为true
10.循环:<for循环>:用法基本同Java。(1)可使用break跳出循环;(2)for..in类似Java中for each,输出的对象的属性;(3)要过滤掉对象继承来的属性,使用hasOwnProperty();(4)数组也被看为是对象,数组进行for..in输出得到是string类型的‘0’,'1','2',而不是number类型0,1,2;<while循环>和<do while循环>类似Java中使用方法
11.Map和Set:<Map>:(1)初始化var map = new Map();(2)添加新的值map.set('key',‘value’);(3)判断集合中是否存在key:map.has('key')(4)获取集合中的值:map.get('key'),若不存在返回undefinded;(5)删除集合中的值:map.delete('key');<Set>:Set中key不允许重复(1)初始化:var set=new Set();或var set=new Set([1,2,3]);(2)添加 set.add();(3)删除delete
12. iterable:Array,Map,Set都属于iterable。可用for..of遍历循环集合。for..of修复了for..in遗留的问题;更好的应使用forEach();forEach()的用法:a.在Array中:a.forEach(function (element, index, array) {};b.在Set中:s.forEach(function (element, sameElement, set) {};c.在Map中:m.forEach(function (value, key, map) {}
13. 函数:关键字为function。注意点:(1)同Java,遇到return方法结束;(2)定义方法的函数有2种,function abs(x){}和var abs=function(x){};;(3)函数体中的关键字arguments,arguments可以获取到当前函数的调用者传入的所有参数,类似一个Array,但不是一个Array,即使函数不定义任何参数,也可以拿到参数的值。arguments平时常被用来判断参数个数;(4)rest参数可被用来获取除定义的参数以外的数据,返回[]形式,若参数数量和传入数量匹配,rest得到是[]空数组;(5)js中默认的全局变量是winodw;(6)let替代var可以申明一个块级作用域的变量;(7)const用来定义常量;(8)同时进行多个元素赋值,可以使用解构赋值
14. 方法:方法的指向和调用这里,感觉不像Java那么简单明确。问题会比较多...其中注意点(1)this,指代当前对象(2)that,避免指向不明确(3)apply,接收两个参数,第一个参数就是需要绑定的this变量,第二个参数是Array,表示函数本身的参数,即getAge.apply(xiaoming,[])(4)call,和apply类似
15.面向对象编程:注意点:(1)类似于Java的extents使用是proto,举例子:xiaoming.propt=student,最好的办法是使用Object.create(Student);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,458评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,454评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,171评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,062评论 0 207
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,440评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,661评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,906评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,609评论 0 200
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,379评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,600评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,085评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,409评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,072评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,088评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,860评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,704评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,608评论 2 270

推荐阅读更多精彩内容

  • (一)函数 1.函数基本声明 function fun([参数1],[参数2],...){ 函数体; }; 2....
    妖妖灵嘛0阅读 242评论 0 0
  • js数据类型 Number 1.包括:-1,0,1,0.111,NaN2.NaN:(Not a Number)可以...
    DoEmpty阅读 317评论 0 1
  • js学习笔记 语法 后续补充笔记 join()方法var fruits = ["Banana", "Orange"...
    crabor阅读 266评论 0 2
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 8,627评论 0 3
  • 第一章 前端三大语言:HTML(专门编写网页内容)、CSS(编写网页样式)、JS(专门编写网页交互行为) 能简写尽...
    fastwe阅读 875评论 0 0