java中局部变量有默认值吗(js 全局变量在function中不能用)

JavaScript 首先会去查找变量是否存在当前作用域,如果不存在,会在父级、爷级、祖级的作用域中去逐步查找。
数据存储位置会对性能产生影响,数据存储有 4 种方式:字面量、变量、数组项、对象成员。
字面量和局部变量的访问速度最快,数组项和对象成员相对来说会慢一些。
局部变量会提升到「当前作用域」的最顶端,也就是「作用域链」的起始位置,所以访问局部变量比访问深层次作用域变量更快。变量在作用域中的位置越深,访问它所需要的时间就越长。
为什么要尽量减少「全局变量」?
因为全局变量在作用域链的最末端,所以访问它的速度也是最慢的。
console.log(window.location.href + window.location.host)//全局对象存储为局部对象减少全局查找let _location = window.location;console.log(_location.href + _location.host);
在对象中,属性和方法在原型链中的位置越深,访问它的速度也就越慢。
要尽量的把对象成员、数组元素、深层作用域变量,赋值保存在局部变量中,这样可以改善 JavaScript 的性能。
let book = {    title:\\\'this is title\\\',    desction:\\\'this is desction.\\\'}console.log(book.toString());//[object object]
对象 book 中有两个实例成员:title 和desction ,对象中并没有定义 toString() 方法,但这个方法会被顺利执行,是因为 toString() 方法是由对象 book 继承而来的原型成员。
对象 book 是可以访问它原型中的属性和方法。
当 book.toString() 调用的时候,会从对象实例开始查找,搜索 toString ,没有找到,会继续顺着它的原型对象向上搜索,直到找到并执行。
    function hasClassFn(element,className1,className2){    return element.className === className1 || element.className === className2;}//上面的代码中 element.className 被读取了两次。//下面的代码将查找次数减少到了 1 次function hasClassFn(element,className1,className2){    let currentClassName = element.className;    return currentClassName === className1 || currentClassName === className2;}
    通常,在函数中如果要多次读取同一个对象属性,最佳做法是将属性值保存到局部变量中。

    原创文章,作者:小道研究,如若转载,请注明出处:https://www.sudun.com/ask/34506.html

    (0)
    小道研究's avatar小道研究
    上一篇 2024年4月8日 上午10:44
    下一篇 2024年4月8日 上午10:46

    相关推荐

    • 老CAFE RACER 223的复活

      这台车花了许多时间几乎一切都是手工制作花了需多时间想灵感快2年多的日子就这样过去了想呈现的是不同的风格。组好引擎后接空燃比机做初步的供油设定在这边要称赞一下BA

      2024年9月1日
      0
    • 基于SpringBoot+Vue高校食堂订餐系统设计与实现

      基于SpringBoot+Vue高校食堂订餐系统设计与实现 文章目录 前言详细视频演示具体实现截图技术可行性分析技术简介后端框架SpringBoot前端框架Vue系统开发平台 系统架构设计业务流程分析为什么选择我们自己的公众号&#xff08

      网站运维 2024年6月23日
      0
    • 幼儿编程都教些什么知识

      幼儿编程教授知识主要集中在逻辑思维、算法基础、创意表达、项目协作四大领域。这些领域通过各种形式和工具呈现,旨在培养儿童解决问题的能力和创新思维。例如,在创意表达领域,我们注重激发孩…

      网站运维 2024年5月12日
      0
    • 应用程序分发和打包:开发人员的基本技能

      什么是app分发打包?在app开发的最后阶段,我们需要将app打包成可以在应用商店中销售的形式。这一步骤称为app分发打包。app分发打包是将app的源代码和资

      2024年9月23日
      0

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注