알아두면 유용한 몇 가지 실용적인 JavaScript 최적화 팁
직장에서 우리는 종종 작은 세부 사항을 통해 코드의 가독성을 높이고 코드를 더욱 우아하게 보이게 할 수 있습니다. 이 글은 여러분이 한눈에 이해할 수 있는 몇 가지 실용적인 JavaScript 최적화 팁을 여러분과 공유할 것입니다. 여러분에게 도움이 되기를 바랍니다!
「난이도:?」 「권장 독서 시간: 5분
」min
」
正片
减少if...else面条代码
- 一旦当我们写到超过两个
if...else
的函数的时候就该想想是否有更好的优化方法。【相关推荐:javascript学习教程】 - 比如现在需要让我们根据名称计算出麦某劳的食品价格,你可能会这么做。
- 这样的写法会让函数体有很多的条件判断语句,而当我们想下次增加一个商品的时候就需要修改函数内的逻辑增加一个
if...else
语句,这一定程度上也违反了开闭原则,当我们需要增加一个逻辑的时候要尽量通过扩展软件实体来解决需求变化,而不是通过修改已有的代码来完成变化。 - 这是很经典的优化方式,我们可以使用一个类似
Map
机构的数据来保存所有商品,这里我们直接建立一个对象来存储。
- 这样我们下次需要再增加一个商品时就不需要改动
getPrice
的逻辑了,当然了这里其实更多人喜欢直接在用的地方直接使用foodMap
,我这里只是简单举了个例子表述这个思路。 - 那么这时候就有同学会问了,如果我不想
key
只用字符串呢,这时候你就可以用到new Map
了,思路也是差不多的,额外扩展一个实体来存储变化。
管道操作取代冗余循环
- 有这么一个麦某劳食物列表
- 如果你想找出属于套餐1的食物,你会怎么找呢?
- 上面这种是我们以前经常使用的方法,显然我们替换成使用
filter
与map
来取代for
循环不仅可以使代码更精简,还可以使语义更加明确,这样我们一下就可以看出是先对数组过滤
再重组
。
find取代冗余循环
- 还是上面的例子,如果我们要在这个食品对象数组中按照属性值查找特定的食物时,
find
的用处就出来了。
includes取代冗余循环
- 和上面两个细节类似的这些都是既有的函数也就是不用我们重新写的内置函数,巧用它会节省很多时间。
- 众所周知,一碗康某傅老坛酸菜牛肉面有酸菜,面,牛肉粒,烟头和脚皮组成,那我们想用函数证实这个面里面是否有脚皮我们怎么写会比较简洁呢?
- 同样的,不止是康某傅的酸菜牛肉面可以这样耍,所有类似的在数组里面找到特定元素的操作都可以使用
includes
函数来调用。
result返回值
- 我们通常在写一些拥有返回值的函数的时候常常会以返回值变量命名而纠结,甚至对于一些长函数的时候还不使用变量而是直接
return
,这样的习惯其实是不好的,因为等我们下次再去参照这段代码的时候还需要重新捋清逻辑。 - 通常的,在一个小函数中,我们可以使用
result
if...else 누들 코드 줄이기
-
if...else
를 2개 이상 작성하면 함수를 사용하는 경우 더 나은 최적화 방법이 있는지 생각해 봐야 합니다. [관련 권장사항: 자바스크립트 학습 튜토리얼]🎜 - 예를 들어, 이제 우리는 이름을 기준으로 Mai Lao의 식품 가격을 계산해야 합니다. 🎜🎜🎜
🎜
- 이렇게 작성하면 함수 본문에 조건부 판단문이 많이 들어가게 되고, 다음에 제품을 추가하고 싶을 때에는 함수의 로직을 수정하고
if를 추가해야 합니다. ..else
문은 🎜열기 및 닫기 원칙🎜을 어느 정도 위반합니다. 논리를 추가해야 하는 경우 요구사항 변경을 해결하기 위해 최선을 다해 소프트웨어 엔터티를 확장해야 합니다. 기존 코드를 수정하여 변경을 완료합니다. 🎜 - 이것은
Map
과 유사한 데이터 구조를 사용하여 모든 제품을 저장할 수 있는 매우 고전적인 최적화 방법입니다. 🎜🎜🎜🎜
- 이렇게 하면 다음에 다른 제품을 추가해야 할 때
getPrice
의 논리를 변경할 필요가 없습니다. 물론 여기에서는foodMap을 사용하는 것을 더 좋아하는 사람들이 더 많습니다.
에서 직접적으로 이 아이디어를 표현하기 위해 간단한 예를 들었습니다. 🎜 - 그러면 이때 어떤 반 친구들이
키
에 문자열만 사용하고 싶지 않다면 어떻게 해야 하느냐고 물을 것입니다. 그러면new Map
을 사용할 수 있습니다. 거의 동일하며 변경 사항을 저장하기 위해 추가 엔터티가 확장되었습니다. 🎜🎜🎜파이프라인 작업이 중복 루프를 대체합니다🎜
- Mai Moulau 음식 목록이 있습니다🎜🎜🎜
🎜
- 찾고 싶다면 out 세트 1에 속한 음식을 어떻게 찾나요? 🎜
- 위 내용은 이전에 자주 사용했던 방법인데,
for
루프를filter
및map
로 대체하면 분명히 알 수 있습니다. , 코드를 더 간소화하면 의미도 더 명확해질 수 있으므로 배열이 먼저필터링
된 다음재구성
되는 것을 한 눈에 볼 수 있습니다. 🎜🎜🎜🎜🎜find는 중복 루프를 대체합니다🎜
- 이 음식 배열의 속성 값에 따라 특정 음식을 찾으려면 위의 예를 그대로 사용하세요. 개체를 사용하면
find
의 유용성이 나옵니다. 🎜🎜🎜🎜🎜include redundant loops🎜
- 위의 두 가지 사항과 유사하게 기존 함수, 즉 필요하지 않은 내장 함수입니다. 함수를 현명하게 사용하면 많은 시간을 절약할 수 있습니다. 🎜
- 우리 모두 알다시피 🎜캉푸라오탄 사우어크라우트 우육면🎜 한 그릇에는 🎜사우어크라우트🎜, 🎜국수🎜, 🎜소고기큐브🎜, 🎜담배꽁초🎜, 🎜발피부🎜가 들어있습니다. 이 국수를 확인하는 기능을 사용하세요. 안쪽에 발 피부가 있는지 어떻게 더 간결하게 쓸 수 있나요? 🎜🎜🎜
🎜
- 마찬가지로 🎜강푸의 양배추 우육면🎜을 이렇게 플레이할 수 있을 뿐만 아니라, 배열에서 특정 요소를 찾는 유사한 모든 연산을
includes
함수를 사용하여 호출할 수 있습니다. 🎜🎜🎜결과 반환 값🎜
- 반환 값이 포함된 일부 함수를 작성할 때 반환 값 변수의 이름을 지정하는 데 종종 어려움을 겪습니다. 일부 긴 함수, 변수는 사용되지 않고 직접
return
됩니다. 이 습관은 다음에 이 코드를 참조할 때 다시 작성해야 하기 때문에 실제로 좋지 않습니다. 🎜 - 일반적으로 작은 함수에서는
result
를 반환 값으로 사용할 수 있습니다. 🎜🎜🎜🎜🎜조기 반환
그러나 위의 반환 값으로
result
를 사용하는 것이 모든 상황에 적용되는 것은 아닙니다. 후속 동료가 중복된 프로그램을 읽지 않도록 함수 본문을 일찍 종료해야 할 때도 있습니다.result
作为返回值并不适用于所有情况,往往有些时候我们需要提前结束函数体来避免后面的同事阅读多余的程序。如下的例子中当我们
selectedKey
不存在的时候应该立即return
,这样就不用继续阅读下面的代码,否则面对更复杂的函数时会增加很多的阅读成本。
保持对象完整
- 经常在我们通过请求拿到后端返回的数据会根据其中一些属性进行处理,如果需要处理的属性少的时候很多同学会习惯使用第一种方法。
- 但其实这种习惯是不好的,因为当你无法确定这个函数以后还需不需要增加依赖属性的时候应该保持对象的完整,就像我上篇文章提到的,学会拥抱变化,假如
getDocDetail
不止要用到icon
和content
,可能以后还会有title
,date
等属性,所以我们不如直接将完整对象传入,不仅增加缩短参数列表还会让代码更易读。
巧用运算符
- 当我们需要创建新变量时, 有时需要检查为其值引用的变量是否为
null
다음 예에서
selectedKey
가 존재하지 않으면 즉시반환
해야 다음 코드를 계속 읽을 필요가 없습니다. 우리는 더 복잡한 기능에 직면하게 될 것입니다. 그러면 독서 비용이 많이 증가할 것입니다.- 객체를 그대로 유지하세요
getDocDetail
이icon
및content
를 사용할 뿐만 아니라title
및date도 포함할 수 있습니다. future.
및 기타 속성을 사용하므로 전체 객체를 직접 전달할 수도 있습니다. 그러면 매개변수 목록이 단축될 뿐만 아니라 코드를 더 읽기 쉽게 됩니다. 🎜🎜🎜🎜🎜연산자의 현명한 사용🎜🎜🎜🎜새로운 변수를 생성해야 할 때, 그 값이 참조하는 변수가
null
인지 확인해야 할 때가 있습니다. 또는 정의되지 않은 경우 간단한 쓰기를 사용할 수 있습니다. 🎜🎜🎜🎜🎜🎜마지막에 작성🎜🎜🎜우선 이 글을 읽어주신 모든 분들께 감사드립니다. 이 글은 여기에서 공유되며 모든 사람에게 도움이 될 수 있기를 바랍니다. 🎜🎜🎜【추천 관련 동영상 튜토리얼: 🎜웹 프론트엔드🎜】🎜
- 반환 값이 포함된 일부 함수를 작성할 때 반환 값 변수의 이름을 지정하는 데 종종 어려움을 겪습니다. 일부 긴 함수, 변수는 사용되지 않고 직접
- 이 음식 배열의 속성 값에 따라 특정 음식을 찾으려면 위의 예를 그대로 사용하세요. 개체를 사용하면
- Mai Moulau 음식 목록이 있습니다🎜🎜🎜
위 내용은 알아두면 유용한 몇 가지 실용적인 JavaScript 최적화 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Laravel은 널리 사용되는 PHP 개발 프레임워크이지만 달팽이처럼 느리다는 비판을 받기도 합니다. Laravel의 만족스럽지 못한 속도의 정확한 원인은 무엇입니까? 이 기사에서는 Laravel이 달팽이처럼 느린 이유를 여러 측면에서 심층적으로 설명하고 이를 특정 코드 예제와 결합하여 독자가 이 문제를 더 깊이 이해할 수 있도록 돕습니다. 1. ORM 쿼리 성능 문제 Laravel에서 ORM(Object Relational Mapping)은 매우 강력한 기능입니다.

Golang의 가비지 수집(GC)은 항상 개발자들 사이에서 뜨거운 주제였습니다. 빠른 프로그래밍 언어인 Golang에 내장된 가비지 컬렉터는 메모리를 매우 잘 관리할 수 있지만, 프로그램의 크기가 커질수록 일부 성능 문제가 발생하는 경우가 있습니다. 이 기사에서는 Golang의 GC 최적화 전략을 살펴보고 몇 가지 구체적인 코드 예제를 제공합니다. Golang의 가비지 수집 Golang의 가비지 수집기는 동시 마크 스윕(concurrentmark-s)을 기반으로 합니다.

Laravel 성능 병목 현상 디코딩: 최적화 기술이 완전히 공개되었습니다! 인기 있는 PHP 프레임워크인 Laravel은 개발자에게 풍부한 기능과 편리한 개발 경험을 제공합니다. 그러나 프로젝트 규모가 커지고 방문 횟수가 늘어나면서 성능 병목 현상에 직면할 수도 있습니다. 이 기사에서는 개발자가 잠재적인 성능 문제를 발견하고 해결하는 데 도움이 되는 Laravel 성능 최적화 기술을 탐구합니다. 1. Eloquent 지연 로딩을 사용한 데이터베이스 쿼리 최적화 Eloquent를 사용하여 데이터베이스를 쿼리할 때 다음을 피하세요.

시간 복잡도는 입력 크기를 기준으로 알고리즘의 실행 시간을 측정합니다. C++ 프로그램의 시간 복잡성을 줄이는 팁에는 데이터 저장 및 관리를 최적화하기 위한 적절한 컨테이너(예: 벡터, 목록) 선택이 포함됩니다. Quick Sort와 같은 효율적인 알고리즘을 활용하여 계산 시간을 단축합니다. 여러 작업을 제거하여 이중 계산을 줄입니다. 불필요한 계산을 피하려면 조건부 분기를 사용하세요. 이진 검색과 같은 더 빠른 알고리즘을 사용하여 선형 검색을 최적화합니다.

Laravel 성능 병목 현상 공개: 최적화 솔루션 공개! 인터넷 기술이 발전함에 따라 웹사이트와 애플리케이션의 성능 최적화가 점점 더 중요해지고 있습니다. 널리 사용되는 PHP 프레임워크인 Laravel은 개발 프로세스 중에 성능 병목 현상에 직면할 수 있습니다. 이 문서에서는 Laravel 애플리케이션이 직면할 수 있는 성능 문제를 살펴보고 개발자가 이러한 문제를 더 잘 해결할 수 있도록 몇 가지 최적화 솔루션과 특정 코드 예제를 제공합니다. 1. 데이터베이스 쿼리 최적화 데이터베이스 쿼리는 웹 애플리케이션의 일반적인 성능 병목 현상 중 하나입니다. 존재하다

1. 바탕화면에서 키조합(Win키 + R)을 눌러 실행창을 연 후, [regedit]를 입력하고 Enter를 눌러 확인하세요. 2. 레지스트리 편집기를 연 후 [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorer]를 클릭하여 확장한 다음 디렉터리에 Serialize 항목이 있는지 확인합니다. 없으면 탐색기를 마우스 오른쪽 버튼으로 클릭하고 새 항목을 생성한 다음 이름을 Serialize로 지정합니다. 3. 그런 다음 직렬화를 클릭한 다음 오른쪽 창의 빈 공간을 마우스 오른쪽 버튼으로 클릭하고 새 DWORD(32) 비트 값을 만들고 이름을 Star로 지정합니다.

Vivox100s 매개변수 구성 공개: 프로세서 성능을 최적화하는 방법은 무엇입니까? 오늘날 급속한 기술 발전 시대에 스마트폰은 우리 일상생활에서 없어서는 안 될 부분이 되었습니다. 스마트폰의 중요한 부분인 프로세서의 성능 최적화는 휴대폰의 사용자 경험과 직접적인 관련이 있습니다. 주목받는 스마트폰인 Vivox100s의 매개변수 구성은 많은 관심을 끌었으며, 특히 프로세서 성능의 최적화는 사용자들의 많은 관심을 끌었습니다. 휴대폰의 "두뇌"인 프로세서는 휴대폰의 실행 속도에 직접적인 영향을 미칩니다.

PHP 기능 효율성을 최적화하는 5가지 방법: 불필요한 변수 복사를 방지합니다. 변수 복사를 방지하려면 참조를 사용하세요. 반복되는 함수 호출을 피하세요. 인라인 단순 함수. 배열을 사용하여 루프 최적화.
