尚硅谷最新版JavaScript基础全套教程完整版(140集实战教学,JS从入门到精通)

一、函数的方法
1.call()和 apply()方法
-这两个方法都是函数对象方法,需要通过函数对象来调用
-当对函数调用call和apply方法时,都会调用函数执行
-在调用call和apply时,可以将一个对象指定成第一个参数,此时这个对象将会成为函数执行时的this
-call()方法可以将实参在对象之后依次传递
-apply()方法需要将实参封装到数组中统一传递

2.this的情况
-以函数情况调用时,this的上下文对象是window
-以方法的形式时,this是调用方法的对象
-以构造函数的形式调用时,this是新创建的对象
-以call和apply方法的形式调用时,this是指定的对象

3.arguments()方法
-在调用函数时,浏览器每次都会传进两个隐含的参数,第一个是函数的上下文对象this,第二个是封装实参的对象arguments
-arguments是一个类数组对象(可以用 Array.isArray()方法检查一个对象是不是数组),它也可以通过索引来操作数据,也可以获取长度
-在调用函数时,我们所传递的实参,都会在arguments中保存
-arguments.length可以获取实参的长度,可以通过索引获取实参(arguments[0]表示第一个实参),即使不定义形参,也可以通过arguments来使用实参,只不过比较麻烦。
-它里面有一个属性是callee,这个属性对应一个函数对象,就是当前正在指向的函数对象,arguments.callee == fun 。

二、.Date对象(在JS中,使用date对象来表示时间)
1.创建一个Date对象:
-var d = new Date();
-如果直接使用构造函数创建一个Date对象,则会封装为当前代码执行的时间
2.创建一个指定的时间对象
-需要在构造函数中传递一个表示时间的字符串作为参数:var d2 =new Date(”12/03/2016“);
-日期的格式 : 月份/日/年 时:分:秒
3.方法
-getDate()方法:获取当前日期对象的日期是一月中的几号
-getDay()方法:获取当前日期对象是星期几,会返回0-6的值,0表示周日,6表示周六
-getMonth()方法:获取当前日期对象是几月,会返回0-11的值,0表示1月,11表示12月
-getFullYear()方法:获取当前日期对象的年份 ,是一个四位数字。
-getTime()方法: 时间戳:返回从格林威治标准时间 1970 年 1 月 1 日0时0分0秒至今的毫秒数,计算机底层在保存时间时都是使用时间戳。
4.获取当前的时间戳,利用时间戳测试代码执行的性能
-time = Date.now(); 代码执行时那一刻的时间戳

三、Math对象
1.Math
-Math和其他的对象不同,它不是构造函数,它属于工具类不用创建对象,它里面封装了数学运算相关的属性和方法
2.W3SCHOOL属性
W3SCHOOL里的Math对象属性
3.方法
-Math.abs();:求一个数的绝对值
-Math.ceil(); : 对一个数上舍入,即对一个数向上取整,小数位只要有值,就自动进1
-Math.floor(); :对一个数向下取整,小数部分会被舍掉
-Math.round();:可以对一个数四舍五入取整
-Math.random(); :可以生成一个0-1之间的随机数 ,如果要生成0-10的随机数,Math.round(Math.random() * 10) ,
-生成一个0-x之间的随机数,Math.round(Math.random() * x) ,
-生成一个x-y之间的随机数,Math.round(Math.random() * (y-x) +x)
-Math.max();:可以获取多个值之间的最大值
-Math.min();:可以获取多个值之间的最小值
-Math.pow(x,y) :可以返回x的y次幂

四、包装类
1.数据类型
-数据类型分为两大类:基本数据类型 和 引用数据类型
-在JS中,为我们提供了三个包装类,通过这三个包装类可以将基本数据类型转换为对象
2.三个包装类
-String() : 可以将一个基本数据类型字符串转换成String对象
-Number() :可以将一个基本数据类型数值转换为Number对象
-Boolean():可以将一个基本数据类型数值转换为Boolean对象
-注意:我们在实际应用中,不会使用基本数据类型的对象,如果使用基本数据类型的对象,在做一些比较时,可能会带来一些不可预期的结果
-方法和属性只能添加给对象,不能添加给基本数据类型
-当我们对一些基本数据类型的值调用属性和方法时,浏览器会临时使用包装类将其转换为对象,然后再调用对象的属性和方法,调用完了以后,再将其转换为基本数据类型

五、字符串的方法
1.在底层,字符串是以字符数组的形式保存的
2.charAt()
-可以返回字符串中指定位置的字符,根据索引获得指定的字符
3.charCodeAt()
-可以返回字符串中指定位置的字符的Unicode编码 语法 str.charCodeAt(5);
4.fromCharCode()
-可以根据字符编码获取字符 语法: result = string.fromCharCode(72); 这个是根据string()构造函数来使用的
5.indexOf(“h”,2)
-该方法可以检索一个字符串中是否含有指定内容
-如果字符串中含有该内容,则会返回其第一次出现的索引,如果没有找到指定的内容,则返回-1
-第二个参数可以指定开始查找的位置
6.lastIndexOf(参数1,参数2)
-该方法和indexOf()类似该方法的作用是从后往前找,也可以指定开始查找的参数
7.slice()
-该方法可以从字符串中截取指定的内容,不会影响原字符串,同样也会将截取的结果返回。
-参数1叫做开始位置的索引(包括开始位置) 参数2叫做结束位置的索引(不包括结束位置) 如果我们省略第二个参数,则会截取到后面所有的,也可以传递一个负数做为参数,负数的话将会从后面开始计算
8.substring()
-也是用来截取字符串,和slice方法类似
-参数1 : 开始位置的索引(包括开始位置) 参数2 : 结束位置的索引 (不包括结束位置)
-与slice的不同点在于这个方法不能接受负值作为参数,如果传递了一个负值,则默认为0。而且还会自动调整参数的位置,如果第二个参数小于第一个,则自动交换
9.substr()
-该方法用来截取字符串
-参数1:截取开始位置的索引 参数2:截取的长度
10.split()
-可以将一个字符串拆分为字符数组
-参数:需要一个字符串作为参数,将会根据这个字符串来拆分数组
-如果传递一个空号(”“)作为参数,则会将每个字符都拆分为数组中的一个元素
11.toUpperCase()
-可以将字符串转换为大写,并返回
12.toLowerCase()
-可以将字符串转换为小写,并返回

六、正则表达式
1.定义
-正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式来检查一个字符串是否符合规则,或者将字符串中符合规则的内容提取出来。
2.创建正则表达式的语法
-var 变量 = new RegExp(”正则表达式“,”匹配模式“);
-使用typeof检查正则对象时,会返回object
3.正则表达式的方法
-test(); 使用这个方法可以用来检查一个字符串是否符合正则表达式的规则,如果符合则返回true
-var reg = new RegExp(”a“),这个正则表达式可以用来检查字符串中是否含有”a“。
-在构造函数中,可以传递一个匹配模式作为第二个参数
参数可以是: i (忽略大小写) g (全局匹配模式)
4.使用字面量来创建正则表达式
-语法 var 变量 /正则表达式/匹配模式
-使用字面量创建正则表达式更加简单,但是使用构造函数创建更加灵活
5.正则表达式语法
-创建一个正则表达式,检查一个字符串中是否有a 或 b . 可以使用 “|” 表示或的意思,【】中括号里的内容也会”或“的关系
reg = /a|b/; /a|b/ == /【ab】/
-创建一个正则表达式,检查一个字符串中是否有字母
reg = /【a-z】/ 【a-z】表示任意的小写字母 ,【A-Z】表示任意的大写字母 ,【A-z】表示任意字母
-检查一个字符串中是否有abc或adc或aec
reg = /a[bde]c/
-【^ab】 检查一个字符串中是否含有除了ab以外的东西 ^表示除了
-【0-9】表示任意的数字
-检查一个字符串中是否以a开头,^表示开头。检查一个字符串是否以a结尾,/a$/表示是否以a结尾,
/^a/表示是否以a开头。

6.量词
-通过量词可以设置一个内容出现的次数,{n}表示正好出现n次 例 var reg =/a{3}/ ,{m,n}则表示出现m到n次。{m,}表示出现m次及以上。+表示至少出现一个,比如b+表示至少出现一个b。*号表示0个或多个,相当于{0,}。?号表示0个或1个,相当于{0,1}
-量词只对它前面的一个内容起作用,比如ab{3}只对b起作用,即代表abbb 。 如果想使ab为一个整体可以加括号 比如(ab){3}就代表ababab。

7.创建一个正则表达式,用来检查一个字符串是否是一个合法手机号

8.检查一个字符串中是否有”.“
-正则表达式中的”.“表示任意字符,在正则表达式中,可以使用\来表示转义字符,可以用斜杠.来表示”.“
-注意:使用构造函数时,参数是一个字符串,而\是字符串中的转义字符,如果要使用\则需要使用两个斜杠来代替
9.正则表达式语法
-\w 表示任意字母、数字、【A-z0-9__】
-\W 表示除了任意字母、数字、
【^A-z0-9__】
-\d 表示任意数字 【0-9】
-\D 表示除了数字 【^0-9】
-\s 表格空格
-\S 表示除了空格
-\b 表示单词边界 例子 : /\bchild\b/表示查找独立的单词child 前后有其他字母都不行
-\B 表示除了单词边界
10.去掉字符串中的空格
-可以使用”“空串替代空格 str = str.replace(/\s/g,"");
-但是我们一般不希望去除字符串中间的空格,只希望去除前后的空格
去除开头的空格 : str = str.replace(/^\s*/,"");
去除结尾的空格:str = str.replace(/\s*$/,"");
既要去除开头的空格 又要去除结尾的空格 : str =str.replace(/^\s*|\s*dollar符/g,”“);

七、字符串和正则相关的方法
1.split()
-split可以根据一个字符将一个字符串拆分为数组 , 方法中可以传递一个正则表达式作为参数
-如果想根据任意字母来将字符串拆分,可以在split()方法里添加一个/【A-z】/的正则表达式
-这个方法即使不指定全局匹配,也会全都拆分
2.search()
-可以搜索字符串中是否含有指定内容
-如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到则会返回-1,它可以接收一个正则表达式作为参数,然后会根据正则表达式去检索参数
-search即使设置全局匹配,也只会查找第一个
-例 : var str = " Hello abc Hello aec Hello afc" 如果想搜索字符串中是否含有 abc 或 aec 或 afc
可以直接使用 result = str.search(/a[bef]c/);
3,match()
-可以根据正则表达式,将一个字符串中符合条件的内容提取出来
-默认情况下,match只会找到第一个符合要求的内容,找到以后就停止检索,我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容,可以为一个正则表达式设置多个匹配模式,且顺序无所谓
-match会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果也是返回一个数组
4.replace()
-可以将字符串中的内容替换成新的内容,默认只替换第一个字符串,此时可以设置一个正则表达式来替换所有的字符串
-参数 1: 需要替换的内容 参数2 : 新的内容

八、邮件的正则表达式
1.电子邮件的格式
例:hello@abc.com.cn
结构: 任意字母数字下划线 .任意字母数字下划线@ 任意字母数字 .任意字母(2-5位) .任意字母(2-5位)
正则表达式结构: \w{3,} (斜杠.\w+)* @ [a-zA-Z0-9]+ (斜杠.[a-zA-Z]{2,5}){1,2}
正则表达式:var Email = /^\w{3,}(斜杠.\w+)* @ [a-zA-Z0-9]+ (斜杠.[a-zA-Z]{2,5}){1,2}$/

尚硅谷最新版JavaScript基础全套教程完整版(p79-p90)相关推荐

  1. JavaScript(基础、高级)笔记汇总表【尚硅谷JavaScript全套教程完整版】

    目   录 前言 JavaScript(基础+高级)配套资料下载 JavaScript 基础 学习地址 学习笔记 day 05(P001-P006)[2016.11.22] day 06(P007-P ...

  2. 尚硅谷Vue2.0+Vue3.0全套教程视频笔记 + 代码 [P001-050]

    视频链接:尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通_哔哩哔哩_bilibili P1-50:当前页面.  P51-100:尚硅谷Vue2.0+Vue3.0全套教程视频笔记 + ...

  3. 【Vue学习笔记】尚硅谷Vue2.0+Vue3.0全套教程丨vue.js从入门到精通

    尚硅谷Vue2.0+Vue3.0全套教程丨vue.js从入门到精通 1.Vue核心部分 1.1 Vue简介 1.1.1 Vue是什么? Vue是一套用于构建用户界面的渐进式JavaScript框架. ...

  4. [Vue]学习笔记目录 【Vue2与Vue3完结】 (尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通)

    文章目录 前言 遇见的问题及其解决方案 之前笔记 Vue2 Vue3 前言 本笔记根据如下笔记和视频进行整理 老师的课件笔记,不含视频 https://www.aliyundrive.com/s/B8 ...

  5. JavaScript基础全套教程(学习笔记)

    01 js的HelloWord 02 js的编写位置 03 js的语法 04 字面量和变量 05 标识符 06 数据类型

  6. 尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通 学习笔记

    已经将课程刷完,但是后来发现网上有很多总结特别好的网站,现在汇总如下 https://www.yuque.com/cessstudy/kak11d 大家好,老师的笔记拿到了,给大家快速拿到 阿里云-- ...

  7. python全套教学免费版_老王Python全套教程完整版

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 课程简介:本套教程为老王的python教程,分基础篇和进阶篇,可以帮助大家从基础学python.基础篇共22课,进阶篇共12课.零基础教学从最基础的知识点 ...

  8. python全套教程-老王Python全套教程完整版

    课程目录 PYthon基础篇 基础篇1-福利课Python先入为主 基础篇2-福利课Python先入为主下 基础篇3-虚拟机安装xubuntu开发环境 基础篇4-linux基本命令以及开发环境 基础篇 ...

  9. SpringBoot笔记汇总【动力节点SpringBoot全套教程完整版】

    前言 动力节点的springboot笔记汇总,公开免费. Spring Boot教程 学习地址 动力节点springboot视频教程-专为springboot初学者打造的教程_哔哩哔哩_bilibil ...

最新文章

  1. Xshell链接远程服务器调用Pycharm的方法
  2. java中sql去除游标_java.sql.SQLException:-ORA-01000:已超过最大打开游标
  3. 客户端是选择Java Swing还是C# Winform
  4. JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结(转)
  5. cocos2dx 父元素影响子元素
  6. 记一个linux内核内存提权问题
  7. OpenCV-Python实战(番外篇)——利用 K-Means 聚类进行色彩量化
  8. Windows下搭建GCC + Eclipse + OpenOCD的ARM开发环境
  9. javascript(js)实现字符串转json对象的四种方法
  10. vt版本不见了_王者荣耀VT版本玩法是什么?修改机型玩VT版方法是什么?
  11. 程序质量:代码静态检查
  12. Python模拟用户自动登陆网易126邮箱
  13. [ github ] 我是怎么用GitHub的?
  14. Paper reading (二十二):Integrated omics: tools, advances and future approaches
  15. C语言计算程序运行时间简单实例
  16. 什么是值传递,什么是引用传递。为什么说Java中只有值传递。
  17. 超越阿里达摩院成绩,这个斯坦福团队用“国产求解器”助中国企业实现智能决策|快公司...
  18. IP数据库的比较和选择
  19. w ndows81能安装什么浏览器,在WindowsServer2019上安装edge浏览器
  20. 微软正版验证补丁的解决方法

热门文章

  1. matlab 俯视图,鸟瞰图-BirdView及其在MATLAB中的表示与实例
  2. 技术大牛?业务大牛?
  3. LeetCode刷题系列
  4. 多方通话中的VOIP通信原理
  5. Docker Swarm (服务发现和负载均衡原理)
  6. 【代码分析】cublasSgemm 矩阵乘法详解
  7. 七日杀游戏开服教程,在Centos7部署七日杀服务器
  8. Java1-4章复习
  9. 4、SONIX单片机TC0、TC1基本定时与计数功能
  10. Java Web 动态网页基础