javascript面向对象编程的知识点有哪些
javascript面向对象编程的知识点有哪些
这篇文章主要介绍了javascript面向对象编程的知识点有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript面向对象编程的知识点有哪些文章都会有所收获,下面我们一起来看看吧。
函数的定义和使用
这一板块的内容主要是对之前Jquery的复习,复习了:函数的定义方法、函数的调用方法。
this指向问题
这一模块的内容主要是学习不同函数中this指向的对象是谁、改变函数内部this的指向方法:call
、apply
、bind
。
改变函数内部this的指向方法:call
、apply
、bind
。
这三个方法共同点:都能改变this的指向;
这三个方法不同点:
call和apply会调用函数,并且改变函数内部this指向;
call和apply传递的参数不一样,call传递参数使用逗号隔开,apply使用数组传递;
bind不会调用函数,可以改变函数内部this指向。
严格模式
这一模块的内容主要是学习了解什么是严格模式。
严格模式定义:ES5 的严格模式是采用具有限制性 JavaScript变体的一种方式,即在严格的条件下运行 JS 代码。(严格模式在 IE10 以上版本的浏览器中才会被支持,旧版本浏览器中会被忽略。)
开启严格模式:
为脚本开启严格模式;
为函数开启严格模式。
高阶函数
这一模块的内容主要是学习高阶函数的定义与相关应用。
高阶函数定义:高阶函数是对其他函数进行操作的函数,它接收函数作为参数或将函数作为返回值输出。
最好理解的就是回调函数,它就是高阶函数。
闭包
这一模块的内容主要是学习闭包的定义、闭包的作用、闭包的运用。
闭包定义:闭包(closure)指有权访问另一个函数作用域中变量的函数。简单理解就是 ,一个作用域可以访问另外一个函数内部的局部变量。
闭包作用:延申了变量的作用范围。
闭包的运用:
点击li打印当前索引号
<body><ulclass='nav'><li>榴莲</li><li>臭豆腐</li><li>鲱鱼罐头</li><li>大猪蹄子</li></ul></body><script>//原始获得索引号的方法varlis=document.querySelector(".nav").querySelectorAll("li");for(vari=0;i<lis.length;i++){lis[i].index=i;lis[i].onclick=function(){console.log(this.index);}}//闭包的定义:指有权访问另一个函数作用域中变量的函数。简单理解就是,一个作用域可以访问另外一个函数内部的局部变量。//需求:利用闭包来得到li的索引号varlis=document.querySelector(".nav").querySelectorAll("li");for(vari=0;i<lis.length;i++){(function(i){//console.log(i);lis[i].onclick=function(){console.log(i);//我们为了点击时才会出现i}})(i);}</script>
3s后打印li里面的内容
<body><ulclass='nav'><li>榴莲</li><li>臭豆腐</li><li>鲱鱼罐头</li><li>大猪蹄子</li></ul></body><script>//利用闭包来得到li的索引号varlis=document.querySelector(".nav").querySelectorAll("li");for(vari=0;i<lis.length;i++){(function(i){//这是立即执行函数//简单来说就是把定时器放在立即执行函数里面setTimeout(function(){//在立即执行函数里的任何一个函数都可以调用立即执行函数里的变量console.log(lis[i].innerHTML);},2000)})(i);}</script>
打车价格的计算应用
<!--需求:打车起步价13(3公里内),之后每多一公里增加5块钱.用户输入公里数就可以计算打车价格如果有拥堵情况,总价格多收取10块钱拥堵费--><script>varcar=(function(){//立即执行函数varstart=13;//起步价vartotal=0;//总价return{price:function(n){if(n<=3){total=start;}else{total=start+(n-3)*5;}returntotal;},yd:function(flag){returnflag?total+10:total;}//拥堵的费用}})();car.price();console.log(car.price(5));console.log(car.yd(true));</script>
递归
这一模块的内容主要是学习递归的定义、递归的运用。
递归的定义:如果一个函数在内部可以调用其本身,那么这个函数就是递归函数。简单理解:函数内部自己调用自己, 这个函数就是递归函数。
注意:递归函数的作用和循环效果一样,由于递归很容易发生“栈溢出”错误(stack overflow),所以必须要加退出条件return。
递归的运用:
求1~n的阶乘
<script>functionfn(n){if(n==1){return1;//判断条件来退出}returnn*fn(n-1);//思路:前一项*后一项//利用return来调用函数本身};//fn();//递归类似于循环;自己调用自己console.log(fn(4));</script>
求斐波那契数列
<script>//1、1、2、3、5、8、13、21...当用户输入n的值来得到在斐波那契数列中的值functionfb(n){if(n===0||n===1||n===2){return1;}else{returnfb(n-1)+fb(n-2);//规律:当用户输入n我们得到(n-1)和(n-2)这两项就能计算出n、对应的序列值}}console.log(fb(0));console.log(fb(4));</script>
递归遍历数据
<script>vardata=[{id:1,name:'家电',goods:[{id:11,gname:'冰箱'},{id:12,gname:'洗衣机'}]},{id:2,name:'服饰'}];//效果:我们想要输入id号就可以返回的数据对象(利用递归来遍历)//1.利用forEach去遍历里面的每一个对象functiongetID(json,id){//json就是一整个大的数组json.forEach(function(item){//item就是data里面的idif(item.id==id){console.log(item);//}elseif(item.goods&&item.goods.length>0){//2.遍历对象里面的对象1112可以利用递归函数(调用自己getID(对象里面的对象item.goods,id))//里面应该有goods这个数组并且数组的长度不为0getID(item.goods,id);}});}getID(data,1);getID(data,2);getID(data,11);</script>
正则表达式
这一模块的内容主要是学习正则表达式定义、正则表达式在js中的使用。
关于“javascript面向对象编程的知识点有哪些”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“javascript面向对象编程的知识点有哪些”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道。
推荐阅读
-
JavaScript闭包用多会造成内存泄露吗
-
javascript中文乱码如何解决
-
PHP学习第十五天——JavaScript入门DOM对象:二
-
Node.js基本内容和知识点
简单的说node.js就是运行在服务端的JavaScript,起初段定位是后端开发语言,由于技术的不够成熟,一般小型项目...
-
PHP与Node.js:一个史诗般开发者的分享
-
JavaScript 中 find() 和 filter() 方法的区别
JavaScript在ES6上有很多数组方法,每种方法都有独特的用途和好处。在开发应用程序时,大多使用数组方法来获...
-
js怎么跟php结合使用
-
简单说说Node.js和JavaScript
Node.js是一个开源和跨平台的JavaScript运行时环境,在浏览器之外运行V8JavaScript引擎(...
-
前端开发工程师专业技能简历范文
-
JavaScript怎么实现淘宝网图片的局部放大功能