您好!欢迎来到爱源码

爱源码

热门搜索: 抖音快手短视频下载   

超薄JavaScript笔记 《网站源码》

  • 时间:2022-10-12 18:20 编辑: 来源: 阅读:288
  • 扫一扫,手机访问
摘要:超薄JavaScript笔记 《网站源码》
本文的总结涵盖了JS的大部分注意点和难点。 一、JS的数据类型:一切都是对象。 值类型(基本类型):字符串(String)、数字(Number)、布尔、空、未定义、符号。 引用数据类型:对象、数组、函数。 小马把对象理解为类似于oop的类,可以有属性和函数。 JavaScript变量都是对象。 当你声明一个变量时,你创建了一个新的对象。 可以使用以下语法创建对象方法:method name:function(){//code } JSON和JS对象的区别:匿名函数:nAdd=function(){n+=1} 上面的函数实际上是一个匿名函数(函数没有名字) 函数存储在变量中,不需要函数名。它们通常用变量名来称呼。 NAdd()自调用函数:函数表达式可以“自调用” 自动调用自调用表达式。 如果表达式后跟(),它将被自动调用。 不能自己调用广告的函数。 加括号说明是函数表达式:(function () {var x = "Hello!!";//我会叫自己})();上面的函数其实是一个匿名的自调用函数(没有函数名)。 简单的理解就是:(function(){}())就是直接获取返回值;计算一次在(functuon(){})()外面并排2个括号;就是先计算前面括号的值,然后执行这个返回值。当然,返回值必须是函数。 二、作用域JavaScript变量生命周期JavaScript变量生命周期在宣布的时候初始化。 局部变量在函数执行后被销毁。 页面关闭后,全局变量被销毁。 参数只在函数中起作用,函数是局部变量。 如果变量没有在函数中声明(没有使用var关键字),它就是一个全局变量。 在下面的例子中,carName在函数中,但它是一个全局变量。 变量只有两个范围:全局变量和局部变量。 Javascript的特殊之处在于可以在函数内部直接读取全局变量。 这里有一点要注意。在函数中声明变量时,必须使用var命令。 如果不是,你实际上宣布了一个全局变量!//这里可以调用carName变量function my function(){ carName = " Volvo ";//这里可以调用carName变量}在HTML中,全局变量是window对象:所有数据变量都属于window对象。 //window . car name function my function(){ car name = " Volvo "可以用在这里;}三。变量提升在JavaScript中,函数和变量的公告会被提升到函数的顶部。 在JavaScript中,变量可以在使用后被声明,也就是说变量可以先使用后声明。 四。这个关键字表示在面向对象语言中对当前对象的引用。 但这在JavaScript中并不是固定的,它会随着执行环境的变化而变化。 在方法中,这指示该方法所属的对象。 如果单独使用,它代表一个全局对象。 在函数中,这表示全局对象。 在函数中,这在严格模式下是未定义的。 在事件中,这指示接收事件的元素。 类似的call()和apply()方法可以将此引用到任何对象。 var person = { firstName: "John ",lastName : "Doe ",id : 5566,full name:function(){ return this . first name+" "+this . last name;}};五、JavaScript let和const ECMAScript 2015(ECMAScript 6)es 2015(ES6)新增了两个重要的JavaScript关键字:let和CONST。 let通告的变量只在let命令所在的代码块中有效。 Const声明一个只读常量。一旦宣布,常量的值就不能改变。 在ES6之前,JavaScript只有两个作用域:函数内的全局变量和局部变量。 六、closure JS的终极BOSS 闭包可以用在很多地方。 它最大的用途有两个,一个是可以读取前面提到的函数内部的变量,另一个是将这些变量的值一直保存在内存中。 自调用函数自动调用返回的累积函数。注意,如果不是自调用(如下图),会返回什么??比较两个区别。 return:function(){ return counter+= 1;}总结:在一个函数A中定义的函数B,函数B对父函数A的局部变量A进行+1运算,此时反复调用A,A会作为全局变量存储在内存中并累加。 以下出自此处。小马觉得很好理解。 封闭的概念总结得很好。在这段代码中,result实际上是闭包的f2函数。 它运行两次,第一次的值是999,第二次的值是1000。 这证明函数f1中的局部变量N一直保存在内存中,并没有在调用f1后自动清理。 为什么会这样?原因是f1是f2的父函数,f2赋给了一个全局变量,导致f2一直在内存中,f2的存在依赖于f1,所以调用结束后f1一直在内存中,不会被垃圾回收。 这段代码中另一个值得注意的地方是行“nAdd=function(){n+=1}”。首先,在nAdd之前没有使用var关键字,所以nAdd是一个全局变量,而不是局部变量。 其次,nAdd的值是一个匿名函数,匿名函数本身就是一个闭包,所以nAdd相当于一个setter,可以在函数外部操作函数内部的局部变量。 在js中,函数是闭包,只有函数才能产生作用域的概念。 闭包主要用于设计私有方法和变量,以及读取函数内部的变量。另一种是将这些变量一直保存在内存中。闭包的好处是可以避免全局变量的污染。缺点是闭包会造成内存驻留,增加内存使用量,使用不当容易导致内存泄漏和网页性能问题。解决方案是,在退出函数之前,标准闭包的使用有三个条件:1。定义了内部函数(这里是f2 );2.内函数指外函数的变量(f2指N);3.这个内部函数用在别处(return f2,f2叫result)-outside)-想想上面的累加器自调用函数闭包。


  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【技术支持|常见问题】1556原创ng8文章搜索页面不齐(2024-05-01 14:43)
【技术支持|常见问题】1502企业站群-多域名跳转-多模板切换(2024-04-09 12:19)
【技术支持|常见问题】1126完美滑屏版视频只能显示10个(2024-03-29 13:37)
【技术支持|常见问题】响应式自适应代码(2024-03-24 14:23)
【技术支持|常见问题】1126完美滑屏版百度未授权使用地图api怎么办(2024-03-15 07:21)
【技术支持|常见问题】如何集成阿里通信短信接口(2024-02-19 21:48)
【技术支持|常见问题】算命网微信支付宝产品名称年份在哪修改?风水姻缘合婚配对_公司起名占卜八字算命算财运查吉凶源码(2024-01-07 12:27)
【域名/主机/服务器|】帝国CMS安装(2023-08-20 11:31)
【技术支持|常见问题】通过HTTPs测试Mozilla DNS {免费源码}(2022-11-04 10:37)
【技术支持|常见问题】别告诉我你没看过邰方这两则有思想的创意广告! (2022-11-04 10:37)

联系我们
Q Q:375457086
Q Q:526665408
电话:0755-84666665
微信:15999668636
联系客服
企业客服1 企业客服2 联系客服
86-755-84666665
手机版
手机版
扫一扫进手机版
返回顶部