国外做内容网站微信社群运营工具

web/2025/10/1 7:14:30/文章来源:
国外做内容网站,微信社群运营工具,上饶市建设局官方网站,saas建站和开源建站的区别重点 更多前端知识 诚邀各位前端从事者爱好者加入前端大佬技术交流社区#xff0c;本社区主要分享技术栈、个人心得、技术交流、问题解惑等前端体系交流 点击下方文字加入 前端大佬技术交流社区 1. 函数的定义和调用 1.1 函数的定义方式 方式1 函数声明方式 function 关键…重点 更多前端知识 诚邀各位前端从事者爱好者加入前端大佬技术交流社区本社区主要分享技术栈、个人心得、技术交流、问题解惑等前端体系交流 点击下方文字加入 前端大佬技术交流社区 1. 函数的定义和调用 1.1 函数的定义方式 方式1 函数声明方式 function 关键字 (命名函数) function f1() {console.log(命名函数) }方式2 函数表达式(匿名函数) var f2 function () {console.log(匿名函数) }方式3 new Function() /*参数1函数形参参数2函数形参参数3函数体*/ var f3 new Function(m, n, console.log(m-n)) // 传入实参 f3(4,2) 注意 Function 里面参数都必须是字符串格式第三种方式执行效率低也不方便书写因此较少使用 1.2 函数的调用 // 普通函数命名函数和匿名函数 function f1() {console.log(人生何处不相逢); } var f2 function () {console.log(寒江孤影江湖故人相逢何必曾相识); } // 对象中的函数专业点叫做方法通过 对象.方法 方式调用 var Person {speak: function () {console.log(人生处处是歌声);} } // 构造函数通过 new 关键字调用 function Star() { } new Star() // 事件处理函数事件触发时被调用 element.onclick function () { } // 定时器函数由定时器选择时机调用 setInterval(function () { }, 1000) // 立即执行函数立即调用 (function () {console.log(first off) }())2.this 2.1函数内部的this指向 这些 this 的指向是当我们调用函数的时候确定的。调用方式的不同决定了this 的指向不同 一般指向我们的调用者. 2.2改变函数内部 this 指向 2.2.1 call方法 call()方法调用一个对象。简单理解为调用函数的方式但是它可以改变函数的 this 指向 应用场景: 经常做继承. var o {name: andy }function fn(a, b) {console.log(this);console.log(ab) }; fn(1,2)// 此时的this指向的是window 运行结果为3 fn.call(o,1,2)//此时的this指向的是对象o,参数使用逗号隔开,运行结果为3以上代码运行结果为: 复习使用this实现继承 2.2.2 apply方法 apply 方法的用于与call 非常类似区别在于不能以参数列表的形式传递实参必须以数组的形式传递 var o {name: andy}function fn(a, b) {console.log(this);console.log(a b)};// 普通调用fn(1, 2)// call调用将函数中的this修改为o对象fn.call(o, 1, 2)// apply 调用区别在于参数列表必须以数组形式传递fn.apply(o,[1,2]) 可以看到我们传入函数的实参是数组但是函数内部会自动展开为参数列表 利用这一特性我们可以结合 Math.max 方法求数组的最大值或者最小值 Math.max 方法可以求一组数字的最大值语法如下 Math.max(1,2,3,4,5)参数为参数列表形式 利用apply 可以将数组传入 var numbers [3, 2, 44, 11, 66, 7] var maxMath.max.apply(null,numbers) console.log(max);也可以利用 ES6 的 Spread syntax 语法 var maxMath.max(...numbers)2.2.3 bind方法 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/bind bind() 方法不会调用函数,但是能改变函数内部this 指向 如果只是想改变 this 指向并且不想调用这个函数的时候可以使用bind 应用场景:不调用函数,但是还想改变this指向 var o {name: andy};function fn(a, b) {console.log(this);console.log(a b); }; var f fn.bind(o, 1, 2); //此处的f是bind返回的新函数 f();//调用新函数 this指向的是对象o 参数使用逗号隔开解惑 上面的代码 var f fn.bind(o, 1, 2)的作用就是将 fn 函数拷贝了一份名称叫做 f同时将函数 f 中的 this 修改为对象o所以函数 f 与 fn 的函数体是一样的只不过内部 this 的指向不同了 如下代码才是调用执行函数 f而上面的代码仅仅完成上面的任务但不会执行函数 fn 也不会执行新函数 f f()应用 页面中有1个div默认为红色鼠标悬浮后变为蓝色3秒之后恢复成红色 var div document.querySelector(div) div.addEventListener(mouseover, function () {this.style.backgroundColor bluesetTimeout(function () {div.style.backgroundColor red}, 3000); })定时器中thiswindow所以不能使用this必须使用元素名称div 当然可以使用 var thatthis 的方式 但这两种方式都有问题如实现下面的效果 当前页面上有3个div默认都为红色鼠标悬浮到某个div上颜色变为蓝色3秒后恢复成红色 var divs document.querySelectorAll(div)for (var i 0; i divs.length; i) {divs[i].addEventListener(mouseover, function () {// 这里的this当前触发事件的某个具体divthis.style.backgroundColor bluesetTimeout(function () {// 下面的代码应该怎么写}, 3000);}) }定时器中的thiswindow所以不能使用window 也不能使用divs[i]因为 i 的索引在事件发生时并不是你想象中的索引 当然可以使用 thatthis 的方式但会多创建局部变量 可以利用bind方法 这里使用bind最合适因为仅仅是修改了函数中this的指向并不会马上执行3秒之后由系统再次调用 注意bind 方法会创建一个新函数所以3秒后调用的是新函数在新函数中thisdiv 问上面不是需要声明一个变量接收bind创建的新函数吗为什么这里不需要 同学请先搞清楚什么时候需要返回值什么时候不需要 2.2.4 call、apply、bind三者的异同 共同点 : 都可以改变this指向 不同点: call 和 apply 会调用函数, 并且改变函数内部this指向.call 和 apply传递的参数不一样,call传递参数使用逗号隔开,apply使用数组传递bind 不会调用函数, 可以改变函数内部this指向. 应用场景 call 经常做继承.apply经常跟数组有关系. 比如借助于数学对象实现数组最大值最小值bind 不调用函数,但是还想改变this指向. 比如改变定时器内部的this指向. 3.严格模式 3.1什么是严格模式 JavaScript 除了提供正常模式外还提供了严格模式strict mode。ES5 的严格模式是采用具有限制性 JavaScript变体的一种方式即在严格的条件下运行 JS 代码。 严格模式在 IE10 以上版本的浏览器中才会被支持旧版本浏览器中会被忽略。 严格模式对正常的 JavaScript 语义做了一些更改 1.消除了 Javascript 语法的一些不合理、不严谨之处减少了一些怪异行为。 2.消除代码运行的一些不安全之处保证代码运行的安全。 3.提高编译器效率增加运行速度。 4.禁用了在 ECMAScript 的未来版本中可能会定义的一些语法为未来新版本的 Javascript 做好铺垫。比如一些保留字如class,enum,export, extends, import, super 不能做变量名 聊聊 TS 3.2开启严格模式 严格模式可以应用到整个脚本或个别函数中。因此在使用时我们可以将严格模式分为为脚本开启严格模式和为函数开启严格模式两种情况。 脚本开启严格模式函数开启严格模式 script// 在当前脚本中启用严格模式script开始标记和结束标记之间生效// use strictvar nameyhbage20function fn(){// 在函数中开启严格模式use strictgender男}fn()/script3.3严格模式中的变化 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Strict_mode 严格模式对 Javascript 的语法和行为都做了一些改变。 use strict num 10 console.log(num)//严格模式后使用未声明的变量 -------------------------------------------------------------------------------- var num2 1; delete num2;//严格模式不允许删除变量删除变量的目的是希望释放内存处理方式一般是将变量的值设置为null -------------------------------------------------------------------------------- function fn() {console.log(this); // 严格模式下全局作用域中函数中的 this 是 undefined } fn(); --------------------------------------------------------------------------------- function Star() {this.gender 男; } // 不加new 调用Star则thisundefined console.log(Star().gender) // 加new 调用Star则this对象 console.log(new Star().gender) ---------------------------------------------------------------------------------- setTimeout(function() {console.log(this); //严格模式下定时器 this 还是指向 window }, 2000); 另外严格模式下函数的参数名称应该唯一 // 非严格模式下 function f1(m, m) {console.log(m m) } f1(1,2) // 4分析一下原因为什么事4严格模式下会报错 4.高阶函数 高阶函数是对其他函数进行操作的函数它接收函数作为参数或将函数作为返回值输出。 函数作为参数 函数作为返回值 函数也是一种数据类型同样可以作为参数传递给另外一个参数使用。最典型的就是作为回调函数。 同理函数也可以作为返回值传递回来 函数作为参数案例 function fn(m, n, callback) {console.log(m n)// 函数主体执行结束后才会执行回调函数callback callback() } fn(3, 4, function () {console.log(我就是回调函数) })jquery 中大量应用了回调函数比如动画完成后执行某个操作 5.闭包 5.1变量的作用域复习 变量根据作用域的不同分为两种全局变量和局部变量。 函数内部可以使用全局变量。函数外部不可以使用局部变量。当函数执行完毕本作用域内的局部变量会销毁。 5.2什么是闭包 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Closures 在JS中函数每次创建都会生成闭包closure这个闭包包含函数及其词法环境大概类似于执行上下文 闭包是一种执行机制内部函数总是可以访问其所在的外部函数中声明的变量和参数即使在其外部函数执行结束之后 /*在一个函数中又嵌套函数在JS中是没有问题的1内部作用域可以访问外部作用域所以f2中可以访问f1中的变量2在全局作用域内不访问函数f1中的变量*/function f1() {var m 100return function() {console.log(m)} }var myfuncf1()// myfunc 是一个变量引用了f2的地址myfunc() 就相当于执行了 f2()myfunc() // f2()// console.log(m)通过上面案例发现闭包可以延伸变量的作用范围。 解惑 一般情况下下面代码执行后外部函数f1就执行完毕了那么函数内部的成员数据都会被销毁包括变量 m但是因为内部函数f2使用了变量m而函数f2又被返回给了变量 myfunc即变量myfuc引用了内部函数f2此时 f2还没有执行所以外部函数f1就不能释放自己的变量m f1()我们可以将 子函数f2 称作闭包函数有争议 我们再对闭包做一个总结函数创建时形成一个闭包闭包让内部函数可以访问外部函数的变量和参数并且通过向外返回内部函数使得在函数外部也可以访问函数内部的数据 闭包的三个特性 1函数嵌套函数 2函数内部可以访问函数外部的变量和参数 3外部函数执行完毕后参数和变量不会被垃圾回收机制回收 5.3闭包的案例 利用闭包的方式得到当前li 的索引号 for (var i 0; i lis.length; i) { // 利用for循环创建了4个立即执行函数 // 立即执行函数也成为小闭包因为立即执行函数里面的任何一个函数都可以使用它的i这变量 (function(i) {lis[i].onclick function() {console.log(i);}})(i); } 但是这种案例使用闭包其实并不是最好的解决方案因为每次循环都要创建一个函数而且每个i 的值都会被保存不能释放所以执行效率会低 将i的值存储于li标签的自定义属性中的方式更加可取 代码 任务单 闭包应用-3秒钟之后,打印所有li元素的内容 下面代码遍历所有li标签创建了三个定时器3秒之后打印每个li标签元素内容 for (var i 0; i lis.length; i) {(function(i) {setTimeout(function() {console.log(lis[i].innerHTML);}, 3000)})(i); }其实使用我们前面学习的 bind 方法也是可以的 代码 任务单 闭包应用-计算打车价格 /*需求分析 打车起步价13(3公里内), 之后每多一公里增加 5块钱. 用户输入公里数就可以计算打车价格 如果有拥堵情况,总价格多收取2块钱拥堵费*/var car (function () {var start_price 13var start_juli 3var total 0return {price: function (juli) {if (juli start_juli) {total start_price} else if (juli 3) {total start_price (juli - start_juli) * 5}return total},yondu: function (flag) {return flag ? total 2 : total}}})() console.log(car.price(3)); console.log(car.price(10)); console.log(car.yondu(false)); console.log(car.yondu(true));解惑 1、立即执行函数中的代码立即执行不会等待调用所以 变量 car 引用的是一个对象 2、引用的对象中包含两个函数 price 和 yongdu这两个函数属于立即执行函数的子函数 3、子函数中引用了外部函数中的变量所以形成了闭包 4、上面的案例并非非要这么编写程序只是为了练习闭包的使用 6.递归 6.1什么是递归 **递归**如果一个函数在内部可以调用其本身那么这个函数就是递归函数。简单理解:函数内部自己调用自己, 这个函数就是递归函数 **注意**递归函数的作用和循环效果一样由于递归很容易发生“栈溢出”错误stack overflow所以必须要加退出条件return。 6.2利用递归求1~n的阶乘 //利用递归函数求1~n的阶乘 1 * 2 * 3 * 4 * ..nfunction fn(n) {if (n 1) { //结束条件return 1;}return n * fn(n - 1);}console.log(fn(3));6.3利用递归求斐波那契数列 // 利用递归函数求斐波那契数列(兔子序列) 1、1、2、3、5、8、13、21... // 用户输入一个数字 n 就可以求出 这个数字对应的兔子序列值 // 我们只需要知道用户输入的n 的前面两项(n-1 n-2)就可以计算出n 对应的序列值 function fb(n) {if (n 1 || n 2) {return 1;}return fb(n - 1) fb(n - 2); } console.log(fb(3));6.4利用递归遍历数据 // 我们想要做输入id号,就可以返回的数据对象var data [{id: 1,name: 家电,goods: [{id: 11,gname: 冰箱,goods: [{id: 111,gname: 海尔}, {id: 112,gname: 美的},]}, {id: 12,gname: 洗衣机}]}, {id: 2,name: 服饰 }]; //1.利用 forEach 去遍历里面的每一个对象function getID(json, id) {var o {};json.forEach(function(item) {// console.log(item); // 2个数组元素if (item.id id) {// console.log(item);o item;return o;// 2. 我们想要得里层的数据 11 12 可以利用递归函数// 里面应该有goods这个数组并且数组的长度不为 0 } else if (item.goods item.goods.length 0) {o getID(item.goods, id);}});return o; }重点 更多前端知识 诚邀各位前端从事者爱好者加入前端大佬技术交流社区本社区主要分享技术栈、个人心得、技术交流、问题解惑等前端体系交流 点击下方文字加入 前端大佬技术交流社区

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84917.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

培训网站图片济南品牌网站建设价格

形态学中的膨胀操作即让照片变得更大,与腐蚀操作互为逆运算 cv2.dilate(erosion,kernel,iterations 1) 第一个参数:图像对象名称 第二个参数:卷积核的大小 第三个参数:迭代次数 此时就可与腐蚀操作进行相结合,腐蚀去毛…

罗湖网站建设哪家好最好最全的搜索引擎

文章目录 前言一、QString与std::string二、QString与int三、QString与double四、QString与char*五、大小端转换 前言 本文涉及QString转int、QString转std::string、QString转double、QString转char*及大小端转换 一、QString与std::string QString qstr "你好&#x…

个人网站设计论文摘要二手书交易网站开发毕业设计

官网地址下载安装包点击下载 会自动识别你当前的系统,或者点击你需要安装的平台或者选择其他版本执行安装高级选项说明:Install for all users 所有用户可使用Associate files with Python 关联PY相关的文件Create shortcuts for installed applications…

网站建设 技术团队html5 网站自适应

一.ZLMediaKit(webrtc)在CentOS7部署与启动 # 1. 卸载旧版本 yum remove git # 2. 安装 yum 源的 Git 版本 yum install -y git # 3. 查看版本 git version # 输出 git version 1.8.3.1配置全局环境变量 # 1. 编辑配置文件 vim /etc/profile # 2. 在 /etc/profile 文件中末尾…

如何自建淘宝客网站小程序开发商有哪些

1 xpath定位 没有某个属性的元素 例如定位没有class属性的td tds tr.xpath(.//td[not(class)])

如何在云服务器上搭建网站国外有哪做交互设计网站

本篇文章是我在B站上看到关于计算机网络的介绍视频收到的启发。本篇文章的内容来自【网络】半小时看懂<计算机网络>_哔哩哔哩_bilibili 一、物理层 从常理来说&#xff0c;进行连个设备之间的通讯&#xff0c;首先最容易想到的就是使用一根线连接两个设备进行通讯。但是…

通过关键词优化提升企业网站centos yum wordpress

Arthas是阿里巴巴开源的Java诊断工具&#xff0c;采用命令行交互的形式进行问题的定位与诊断。它能够帮助你. 解决以下问题&#xff1a; 这个类从哪个 jar 包加载的&#xff1f;为什么会报各种类相关的 Exception&#xff1f;我改的代码为什么没有执行到&#xff1f;难道是我…

静态网站建设背景设计网站开发方案流程

1.View层&#xff08;视图层&#xff09; 职责&#xff1a;负责数据的展示和用户交互。在Web应用中&#xff0c;View层通常与HTML、CSS和JavaScript等技术相关。 技术实现&#xff1a;在Spring MVC中&#xff0c;View层可以使用JSP、Thymeleaf、FreeMarker等模板引擎来实现。…

郑州建设网站企业网站视频主持人网

请阅读【Trace32 ARM 专栏导读】 文章目录 Trace32 Go.directGo配合程序断点使用Go 配合读写断点使用Go 快速回到上一层函数 System.Mode Go Trace32 Go.direct TRACE32调试过程中&#xff0c;会经常对芯片/内核进行控制&#xff0c;比如全速运行、暂停、单步等等。这篇文章先…

中企动力的网站wordpress+百度云图安装

快速上手Spring Cloud 一&#xff1a;Spring Cloud 简介 快速上手Spring Cloud 二&#xff1a;核心组件解析 快速上手Spring Cloud 三&#xff1a;API网关深入探索与实战应用 快速上手Spring Cloud 四&#xff1a;微服务治理与安全 快速上手Spring Cloud 五&#xff1a;Spring …

医药类网站建设评价汾阳网架公司

一、本地解析 如果使用本地ip解析的话&#xff0c;我们将会借助ip2region&#xff0c;该项目维护了一份较为详细的本地ip地址对应表&#xff0c;如果为了离线环境的使用&#xff0c;需要导入该项目依赖&#xff0c;并指定版本&#xff0c;不同版本的方法可能存在差异。 <d…

音乐介绍网站怎么做的网站怎样推广 优帮云

目前市面上大多一对一互动都是基于WebRTC&#xff0c;缺点如下&#xff1a; 服务器部署非常复杂&#xff0c;不利于私有部署&#xff0c;在一些私密性高的场景下&#xff0c;无法使用&#xff0c;如公安、市政等体系&#xff1b;传输基于UDP&#xff0c;很难保证传输质量&…

网站建设知识产权问题品牌营销平台

机器学习入门系列&#xff08;2&#xff09;–如何构建一个完整的机器学习项目&#xff0c;第五篇&#xff01; 该系列的前四篇文章&#xff1a; 机器学习入门系列(2)–如何构建一个完整的机器学习项目(一)机器学习数据集的获取和测试集的构建方法特征工程之数据预处理&#…

莘县制作网站黑龙江建设网网站一体化平台

目录 一.关系型数据库和非关系型数据库 关系型数据库 非关系型数据库 关系数据库与非关系型数据库的区别 ①非关系数据 关系型数据库 非关系型数据库产生背景 数据存储流向 非关系型数据库 关系数据库 二.redis的简介 1.概念 2.Redis 具有以下几个优点: 3.Redi…

沧州模板建站开源项盿南京网站开发xuan南京乐识

CodePen 是一个在线的前端代码编辑和展示网站&#xff0c;能够编写代码并即时预览效果。你在上面可以在线分享自己的 Web 作品&#xff0c;也可以欣赏到世界各地的优秀开发者在网页中实现的各种令人惊奇的效果。 今天这篇文章为大家挑选了15个超炫的 CSS 动画效果的例子&#x…

企业网站建设的调研网站开发及服务器总共多少钱

机器人达到指定位置方法数 来自左程云老师书中的一道题 【题目】 假设有排成一行的 N 个位置&#xff0c;记为 1~N&#xff0c;N 一定大于或等于 2。开始时机器人在其中的 M 位置上&#xff08;M 一定是 1&#xff5e;N 中的一个&#xff09;&#xff0c;机器人可以往左走或…

免费com域名网站网站建设制作设计营销 中山

我们新项目硬件设计上使用gpio口做按键&#xff0c;所以我就需要搞定这个驱动&#xff0c;本来想自己写一个gpio口的按键驱动&#xff0c;然后看了下内核下面的代码&#xff0c;已经有现成的了。Linux内核下游很多很多的现成驱动&#xff0c;只要你想得到的&#xff0c;基本都是…

辽宁网站建设专业学校wordpress 80端口

之前的blog链接&#xff1a;https://blog.csdn.net/weixin_43303286/article/details/131700482?spm1001.2014.3001.5501 我用的方法是在leetcode再过一遍例题&#xff0c;明显会的就复制粘贴&#xff0c;之前没写出来就重写&#xff0c;然后从拓展题目中找题目来写。辅以Lab…

所有网站排名2015年wordpress链接数据库文件

前言 在游戏和图形应用开发领域&#xff0c;大型场景的纹理管理一直是一个具有挑战性的任务。Unity3D中的Virtual Texture&#xff08;虚拟纹理&#xff09;技术为这一难题提供了一种创新的解决方案。本文将对Virtual Texture技术进行详细介绍&#xff0c;并提供代码实现的基础…