![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
javascript学习笔记(已完结)
基础的javascript知识
azraelxuemo
这个作者很懒,什么都没留下…
展开
-
javascript学习笔记(20)--class继承
引入在上面的章节中我们看到了JavaScript的对象模型是基于原型实现的,特点是简单,缺点是理解起来比传统的类-实例模型要困难,最大的缺点是继承的实现需要编写大量代码,并且需要正确实现原型链新的关键字class从ES6开始正式被引入到JavaScript中class的目的就是让定义类更简单class还是先回顾一下之前的方法function Student(name){this.name=name;this.hello=function(){console.log('你好');};Stud原创 2020-06-24 18:30:41 · 392 阅读 · 0 评论 -
javascript学习笔记(19)--原型继承
原原型型继继承承 在传统的基于Class的语言如Java、C++中,继承的本质是扩展一个已有的Class,并生成新的Subclass。 由于这类语言严格区分类和实例,继承实际上是类型的扩展。但是,JavaScript由于采用原型继承,我们无法直接扩展一个 Class,因为根本不存在Class这种类型。 但是办法还是有的。我们先回顾Student构造函数: function Student(props) { this.name = props.name || ‘Unnamed’; }Student.proto原创 2020-06-24 15:25:10 · 246 阅读 · 0 评论 -
javascript学习笔记(18)--new&构造函数
这节开始之前,我们先详细认识一下newnew学习new之前先要认识prototypeprototypeprototype(原型),上节我们学习了原型链,相信你也记得object的原型链,他是最特别的一个原型链,因为很短Object----> Object.prototype ----> null那么这里为什么会不同呢?我们回忆一下object创建的过程var a={name:'xiaoming'}typeof a"object"a.__proto__===Object.原创 2020-06-24 10:48:24 · 2225 阅读 · 2 评论 -
javascript学习笔记(17)--prototype
引入javascript的原型继承其实是比较麻烦的,涉及的东西挺多的…网上的都挺散的上一节简单的讲了一下原型和创建对象,最后讲了下原型链,原型链里面有个关键字prototype这个之前可能一直都没有关注过,但他其实一直潜伏在javascript里面比如说我们这个简单的数组,不知道你有没有打开那个看看,下面会有一项prototype什么是prototypeprototype原型;雏形;最初形态在这里我们取原型的意思原型这个概念可能很好理解,可以理解为就是模板,其他的都是靠这个模板复刻的,刚原创 2020-06-23 17:17:47 · 399 阅读 · 0 评论 -
javascript学习笔记(16)--原型&原型链
引入JavaScript的面向对象编程和大多数其他语言如Java、C#的面向对象编程都不太一样面向对象编程的两个基本概念类:类是对象的类型模板,例如,定义Student类来表示学生,类本身是一种类型,Student表示学生类型,但不表示任何具体的某个学生;实例:实例是根据类创建的对象,例如,根据Student类可以创建出xiaoming、xiaohong、xiaojun等多个实例, 每个实例表示一个具体的学生,他们全都属于Student类型所以,类和实例是大多数面向对象编程语言的基本概念不过原创 2020-06-23 09:43:24 · 273 阅读 · 0 评论 -
javascript学习笔记 (15)--JSON序列化&反序列化
什么是JSONJSON是JavaScript Object Notation的缩写,它是一种数据交换格式在JSON中,有如下数据类型numberbooleanstringnullarrayobjectJSON规定了字符集必须是UTF-8,可以表示多语言为了统一解析,JSON的字符串规定必须用双引号"",Object的键也必须用双引号""把任何JavaScript对象变成JSON,就是把这个对象序列化成一个JSON格式的字符串,这样才能够通过网络传递给其他计算机。 如果我们收到一个JSO原创 2020-06-22 19:13:46 · 301 阅读 · 0 评论 -
javascript学习笔记(14)--generator
什么是generatorgenerator(生成器)是ES6标准引入的新的数据类型。一个generator看上去像一个函数,但可以返回多次generator定义先复习函数的概念,一个函数是一段完整的代码,调用一个函数就是传入参数,然后返回结果 function foo(x) { return x + x; } var r = foo(1); 函数在执行过程中,如果没有遇到return语句(函数末尾如果没有return,就是隐含的return undefined;)控制权则无法交回被调用的代码原创 2020-06-22 16:09:04 · 178 阅读 · 0 评论 -
javascript学习笔记(13)--箭头函数
ES6标准新增了一种新的函数:ArrowFunction(箭头函数)它用箭头定义x => x * x相当于function (x) { return x * x; }箭头函数相当于匿名函数,并且简化了函数定义箭头函数有两种格式,一种像上面的,只包含一个表达式,连{ … }和return都省略掉了还有一种可以包含多条语句,这时候就不能省略{ … }和return x => { if (x > 0) { return x * x; } else {return - x *原创 2020-06-22 15:25:17 · 561 阅读 · 0 评论 -
javascript学习笔记(12)--闭包
function sum(arr) {return arr.reduce(function (x, y) {return x + y;});}sum([1, 2, 3, 4, 5]); // 15function lazy_sum(arr) {var sum = function () {return arr.reduce(function (x, y) {return x + y;});}return sum;}当我们调用lazy_sum()时,返回的并不是求和结果,而是求和函原创 2020-06-22 15:04:13 · 212 阅读 · 0 评论 -
javascript学习笔记(11)--sort排序
要按数字大小排序,我们可以这么写:var arr = [10, 20, 1, 2];arr.sort(function (x, y) {if (x < y) {return -1;}if (x > y) {return 1;}return 0;}); // [1, 2, 10, 20]var arr = [‘Google’, ‘apple’, ‘Microsoft’];arr.sort(function (s1, s2) {x1 = s1.toUpperCase();原创 2020-06-21 18:42:25 · 335 阅读 · 0 评论 -
javascript学习笔记(10)--this
在一个对象中绑定函数,称为这个对象的方法在JavaScript中,对象的定义是这样的 var xiaoming = { name: '小明', birth: 2000 };但是,如果我们给xiaoming绑定一个函数,就可以做更多的事情比如,写个age()方法,返回xiaoming的年龄var xiaoming = { name: '小明', birth:2000,age: function () { var y = new Date().getFullYear()- this.bir原创 2020-06-21 15:26:17 · 174 阅读 · 0 评论 -
javascript学习笔记(9)--作用域
虽然是strict模式,但语句var x = 'Hello, ’ + y;并不报错,原因是变量y在稍后申明了。但是alert显示Hello,undefined,说明变量y的值为undefined。这正是因为JavaScript引擎自动提升了变量y的声明,但不会提升变量y的赋 值。不在任何函数内定义的变量就具有全局作用域。实际上,JavaScript默认有一个全局对象window,全局作用域的变量实际上被绑定到window的一个属性:要按数字大小排序,我们可以这么写:var arr = [10, 2原创 2020-06-21 11:08:03 · 181 阅读 · 0 评论 -
javascript学习笔记(8)--正则表达式
在正则表达式中,如果直接给出字符,就是精确匹配。用\d可以匹配一个数字,\w可以匹配一个字母或数字,所以:‘00\d’可以匹配’007’,但无法匹配’00A’;‘\d\d\d’可以匹配’010’;‘\w\w’可以匹配’js’;.可以匹配任意字符,所以:'js.‘可以匹配’jsp’、‘jss’、‘js!‘等等。要匹配变长的字符,在正则表达式中,用*表示任意个字符(包括0个),用+表示至少一个字符,用?表示0个或1个字符,用{n}表示n个字符,用{n,m}表示n-m个字符:\s可以匹配一个空格(原创 2020-06-20 18:11:49 · 295 阅读 · 0 评论 -
javascript学习笔记(7)--时间
var now = new Date();now;//Date Thu Jun 18 2020 10:27:18 GMT+0800 (中国标准时间)now.getFullYear();//2020now.getMonth();//5,注意月份范围是0~11,5表示六月 now.getDate();//18now.getDay(); //4,星期4now.getHours();10, 24小时制now.getMinutes(); //29分now.getSeconds(); // 59秒no原创 2020-06-19 21:43:10 · 113 阅读 · 0 评论 -
javascript学习笔记(6)--错误传播&异步错误处理
如果在一个函数内部发生了错误,它自身没有捕获,错误就会被抛到外层调用函数,如果外层函数也没有捕获,该错误会一直沿着函数调用链向上抛出,直到被JavaScript引擎捕获,代码终止执行function getLength(s){ return s.length; };//返回长度 function printLength() { console.log(getLength('abc')); console.log(getLength(null));}printLength();3 Type原创 2020-06-18 10:08:20 · 312 阅读 · 0 评论 -
javascript学习笔记(5)--错误处理&错误类型&抛出错误
在执行JavaScript代码的时候,有些情况下会发生错误,错误分两种一种是程序写的逻辑不对,导致代码执行异常 var s = null; var len = s.length; // TypeError:s is nullength in null;//TypeError: right-hand side of 'in' should be an object, got nullnull没有length属性,对于这种错误,要修复程序一种是执行过程中,程序可能遇到无法预测的异常情况而报错,例原创 2020-06-18 08:18:56 · 719 阅读 · 0 评论 -
javascript学习笔记(4)--函数&高阶函数
下面介绍一下javascript的函数function foo(x) { alert(x); }foo(10);//然后就会在页面上显示一个小弹框,显示10foo('啦啦啦');//然后就显示了一个啦啦啦alert忘记…前面说过了吗…alert(arguments)arguments就是我们填写的表达式,可以是1,2纯数字,也可以是字符,字符串,但需要加单引号比如说'啦啦啦'这样的话确实是可以,但如果我们想要显示多个弹框的话,怎么确定要输入的变量数量呢function foo()原创 2020-06-11 19:23:57 · 159 阅读 · 0 评论 -
javascript学习笔记(3)--map&set&元素遍历&filter
var s="xixi";s[0]='s';s;//xixi不会报错,但没有效果访问属性是通过.操作符完成的,但这要求属性名必须是一个有效的变量名。如果属性名包含特殊字符,就必须用’'括起来,var xiaohong = { name: '小红', 'middle-school': 'No.1 Middle School' };xiaohong的属性名middle-school不是一个有效的变量,(因为有-)就需要用’'括起来。访问这个属性也无法使用.操作符,必须用[‘xxx’]来原创 2020-06-03 20:50:35 · 305 阅读 · 0 评论 -
javascript学习笔记(2)--基础语法
前端时间自己弄了个简单的网站源码,功能什么都不够丰富,所以这段时间准备学一下javascript,然后顺便也把自己学习的体会分享一下,如果也有想学习的同学可以看我分享的这本教程,也是我最近在看的廖雪峰-JavaScript教程提取码:5m58因为关于web这一块的话如果不会javascript,也会有很多障碍…所以还是要耐心学一下,对于以后 web渗透也有帮助,废话不多说,下面进入正题关于环境的话,我就直接在firefox里面写,因为现在还在初学期,简单的测试一下还是可以的,但后期的话就可能需要用到原创 2020-06-01 17:54:07 · 229 阅读 · 0 评论 -
javascript学习笔记(1)--javascript对象的理解
Number()、Boolean和String()被当做普通函数,把任何类型的数据转换为number、boolean和string类型(注意不是其包装类型):var n = Number(‘123’); // 123,相当于parseInt()或parseFloat()typeof n; // ‘number’var b = Boolean(‘true’); // truetypeof b; // ‘boolean’var b2 = Boolean(‘false’); // true! ‘fal原创 2020-06-20 20:53:41 · 172 阅读 · 0 评论