목차
使用+将字符串转换成数字
并条件符
使用||运算符
在循环中缓存array.length
检测对象中属性
获取数组中最后一个元素
数组截断
替换所有
合并数组
NodeList转换成数组
数组元素的洗牌
总结
웹 프론트엔드 JS 튜토리얼 12가지 필수 JavaScript 팁

12가지 필수 JavaScript 팁

Jul 08, 2020 pm 04:36 PM
javascript 기능

12가지 필수 JavaScript 팁

이 글에서는 JavaScript에 관한 12가지 팁을 공유하겠습니다. 이러한 팁은 실제 작업에서 몇 가지 문제를 해결하는 데 도움이 될 수 있습니다.

관련 학습 권장사항: javascript 비디오 튜토리얼

!! 연산자를 사용하여 부울 값 변환

!!操作符转换布尔值

有时候我们需要对一个变量查检其是否存在或者检查值是否有一个有效值,如果存在就返回true值。为了做这样的验证,我们可以使用!!操作符来实现是非常的方便与简单。对于变量可以使用!!variable做检测,只要变量的值为:0null" "undefined或者NaN都将返回的是false,反之返回的是true。比如下面的示例:

function Account(cash) {
    this.cash = cash;
    this.hasMoney = !!cash;
}
var account = new Account(100.50);
console.log(account.cash); // 100.50
console.log(account.hasMoney); // true

var emptyAccount = new Account(0);
console.log(emptyAccount.cash); // 0
console.log(emptyAccount.hasMoney); // false
로그인 후 복사

在这个示例中,只要account.cash的值大于0,那么account.hasMoney返回的值就是true

使用+将字符串转换成数字

这个技巧非常有用,其非常简单,可以交字符串数据转换成数字,不过其只适合用于字符串数据,否则将返回NaN,比如下面的示例:

function toNumber(strNumber) {
    return +strNumber;
}
console.log(toNumber("1234")); // 1234
console.log(toNumber("ACB")); // NaN
로그인 후 복사

这个也适用于Date,在本例中,它将返回的是时间戳数字:

console.log(+new Date()) // 1461288164385
로그인 후 복사

并条件符

如果你有一段这样的代码:

if (conected) {
    login();
}
로그인 후 복사

你也可以将变量简写,并且使用&&和函数连接在一起,比如上面的示例,可以简写成这样:

conected && login();
로그인 후 복사

如果一些属性或函数存在于一个对象中,你也可以这样做检测,如下面的代码所示:

user && user.login();
로그인 후 복사

使用||运算符

在ES6中有默认参数这一特性。为了在老版本的浏览器中模拟这一特性,可以使用||操作符,并且将将默认值当做第二个参数传入。如果第一个参数返回的值为false,那么第二个值将会认为是一个默认值。如下面这个示例:

function User(name, age) {
    this.name = name || "Oliver Queen";
    this.age = age || 27;
}
var user1 = new User();
console.log(user1.name); // Oliver Queen
console.log(user1.age); // 27

var user2 = new User("Barry Allen", 25);
console.log(user2.name); // Barry Allen
console.log(user2.age); // 25
로그인 후 복사

在循环中缓存array.length

这个技巧很简单,这个在处理一个很大的数组循环时,对性能影响将是非常大的。基本上,大家都会写一个这样的同步迭代的数组:

for(var i = 0; i < array.length; i++) {
    console.log(array[i]);
}
로그인 후 복사

如果是一个小型数组,这样做很好,如果你要处理的是一个大的数组,这段代码在每次迭代都将会重新计算数组的大小,这将会导致一些延误。为了避免这种现象出现,可以将array.length做一个缓存:

var length = array.length;
for(var i = 0; i < length; i++) {
    console.log(array[i]);
}
로그인 후 복사

你也可以写在这样:

for(var i = 0, length = array.length; i < length; i++) {
    console.log(array[i]);
}
로그인 후 복사

检测对象中属性

当你需要检测一些属性是否存在,避免运行未定义的函数或属性时,这个小技巧就显得很有用。如果你打算定些一些跨兼容的浏览器代码,你也可能会用到这个小技巧。例如,你想使用document.querySelector()来选择一个id,并且让它能兼容IE6浏览器,但是在IE6浏览器中这个函数是不存在的,那么使用这个操作符来检测这个函数是否存在就显得非常的有用,如下面的示例:

if (&#39;querySelector&#39; in document) {
    document.querySelector("#id");
} else {
    document.getElementById("id");
}
로그인 후 복사

在这个示例中,如果document不存在querySelector函数,那么就会调用docuemnt.getElementById("id")

获取数组中最后一个元素

Array.prototype.slice(begin,end)用来获取beginend之间的数组元素。如果你不设置end参数,将会将数组的默认长度值当作end值。但有些同学可能不知道这个函数还可以接受负值作为参数。如果你设置一个负值作为begin的值,那么你可以获取数组的最后一个元素。如:

var array = [1,2,3,4,5,6];
console.log(array.slice(-1)); // [6]
console.log(array.slice(-2)); // [5,6]
console.log(array.slice(-3)); // [4,5,6]
로그인 후 복사

数组截断

这个小技巧主要用来锁定数组的大小,如果用于删除数组中的一些元素来说,是非常有用的。例如,你的数组有10个元素,但你只想只要前五个元素,那么你可以通过array.length=5来截断数组。如下面这个示例:

var array = [1,2,3,4,5,6];
console.log(array.length); // 6
array.length = 3;
console.log(array.length); // 3
console.log(array); // [1,2,3]
로그인 후 복사

替换所有

String.replace()函数允许你使用字符串或正则表达式来替换字符串,本身这个函数只替换第一次出现的字符串,不过你可以使用正则表达多中的/g来模拟replaceAll()函数功能:

var string = "john john";
console.log(string.replace(/hn/, "ana")); // "joana john"
console.log(string.replace(/hn/g, "ana")); // "joana joana"
로그인 후 복사

合并数组

如果你要合并两个数组,一般情况之下你都会使用Array.concat()때로는 변수가 존재하는지 또는 값이 다음과 같은지 확인해야 할 때가 있습니다. 유효한 값이 있으며, 존재하는 경우 true 값을 반환합니다. 이러한 검증을 수행하기 위해 !! 연산자를 사용하여 이를 달성할 수 있는데 이는 매우 편리하고 간단합니다. 변수의 경우 변수 값이 0, null, 인 경우 감지를 위해 <code>!!variable을 사용할 수 있습니다. " " , undefine 또는 NaNfalse를 반환하고, 그렇지 않으면 true를 반환합니다. 예를 들어 다음 예는 다음과 같습니다.

var array1 = [1,2,3];
var array2 = [4,5,6];
console.log(array1.concat(array2)); // [1,2,3,4,5,6];
로그인 후 복사
로그인 후 복사
🎜이 예에서는 account.cash의 값이 0보다 크면 에서 반환된 값이 account.hasMoney 입니다. 🎜🎜문자열을 숫자로 변환하려면 +를 사용하세요.🎜이 기술은 매우 간단하며 문자열 데이터를 숫자로 변환할 수 있지만 그렇지 않은 경우에만 적합합니다. 다음 예와 같이 NaN이 반환됩니다. 🎜
var array1 = [1,2,3];
var array2 = [4,5,6];
console.log(array1.push.apply(array1, array2)); // [1,2,3,4,5,6];
로그인 후 복사
로그인 후 복사
🎜이는 Date에도 적용됩니다. 이 경우 타임스탬프 번호가 반환됩니다. 🎜
var elements = document.querySelectorAll("p"); // NodeList
var arrayElements = [].slice.call(elements); // Now the NodeList is an array
var arrayElements = Array.from(elements); // This is another way of converting NodeList to Array
로그인 후 복사
로그인 후 복사
🎜 Union 조건부 연산자🎜다음과 같은 코드가 있는 경우: 🎜
var list = [1,2,3];
console.log(list.sort(function() { Math.random() - 0.5 })); // [2,1,3]
로그인 후 복사
로그인 후 복사
🎜변수를 축약하고 &&를 사용하여 함수와 연결할 수도 있습니다. 다음과 같이 축약됩니다: 🎜rrreee🎜 다음 코드에 표시된 것처럼 일부 속성이나 함수가 객체에 존재하는지 감지할 수도 있습니다. 🎜rrreee🎜||연산자🎜 사용 ES6의 기본 매개변수 기능입니다. 이전 브라우저에서 이 기능을 에뮬레이트하려면 || 연산자를 사용하고 기본값을 두 번째 매개변수로 전달하세요. 첫 번째 매개변수에서 반환된 값이 false인 경우 두 번째 값이 기본값으로 간주됩니다. 다음 예를 들어보세요. 🎜rrreee🎜루프의 캐시 array.length🎜이 기술은 매우 간단합니다. 대규모 배열 루프를 처리할 때 성능에 미치는 영향은 매우 큽니다. . 기본적으로 모든 사람은 다음과 같이 동기적으로 반복되는 배열을 작성합니다. 🎜rrreee🎜 작은 배열이라면 괜찮습니다. 큰 배열을 다루는 경우 이 코드는 반복할 때마다 다시 초기화됩니다. 이로 인해 약간의 지연이 발생합니다. 이 현상을 피하기 위해 array.length의 캐시를 만들 수 있습니다: 🎜rrreee🎜다음과 같이 작성할 수도 있습니다: 🎜rrreee🎜객체의 속성 감지🎜필요할 때 이 트릭은 속성이 존재하는지 확인하고 정의되지 않은 함수나 속성의 실행을 피할 때 유용합니다. 일부 크로스 브라우저 코드를 사용자 정의하려는 경우에도 이 트릭을 사용할 수 있습니다. 예를 들어 document.querySelector()를 사용하여 id를 선택하고 IE6 브라우저와 호환되게 만들고 싶지만 이 함수는 IE6 브라우저에 존재하지 않습니다. 다음 예와 같이 이 연산자를 사용하여 이 함수가 존재하는지 여부를 감지하는 데 매우 유용합니다. 🎜rrreee🎜이 예에서 documentquerySelector 함수가 없으면 docuemnt.getElementById("id")가 호출됩니다. 🎜🎜배열의 마지막 요소 가져오기🎜Array.prototype.slice(begin,end)beginend를 가져오는 데 사용됩니다. 코드> 사이의 배열 요소. end 매개변수를 설정하지 않으면 배열의 기본 길이 값이 end 값으로 사용됩니다. 하지만 일부 학생들은 이 함수가 음수 값도 매개변수로 받아들일 수 있다는 사실을 모르는 경우가 있습니다. begin 값을 음수로 설정하면 배열의 마지막 요소를 가져올 수 있습니다. 예: 🎜rrreee🎜배열 잘림🎜 이 작은 트릭은 주로 배열의 크기를 잠그는 데 사용됩니다. 배열의 일부 요소를 삭제하는 데 사용되는 경우 매우 유용합니다. 예를 들어, 배열에 10 요소가 있지만 처음 5개 요소만 원하는 경우 array.length=5를 통해 배열을 자를 수 있습니다. 다음 예와 같습니다: 🎜rrreee🎜Replace all🎜String.replace() 이 함수를 사용하면 문자열이나 정규식을 사용하여 문자열을 바꿀 수 있습니다. 이 함수는 처음 문자열만 바꿉니다. 하지만 정규 표현식에서 /g를 사용하여 replaceAll() 함수 함수를 시뮬레이션할 수 있습니다. 🎜rrreee🎜배열 병합🎜두 개를 병합하려면 배열의 경우 일반적으로 Array.concat() 함수를 사용합니다. 🎜
var array1 = [1,2,3];
var array2 = [4,5,6];
console.log(array1.concat(array2)); // [1,2,3,4,5,6];
로그인 후 복사
로그인 후 복사

然后这个函数并不适合用来合并两个大型的数组,因为其将消耗大量的内存来存储新创建的数组。在这种情况之个,可以使用Array.pus().apply(arr1,arr2)来替代创建一个新数组。这种方法不是用来创建一个新的数组,其只是将第一个第二个数组合并在一起,同时减少内存的使用:

var array1 = [1,2,3];
var array2 = [4,5,6];
console.log(array1.push.apply(array1, array2)); // [1,2,3,4,5,6];
로그인 후 복사
로그인 후 복사

NodeList转换成数组

如果你运行document.querySelectorAll(“p”)函数时,它可能返回DOM元素的数组,也就是NodeList对象。但这个对象不具有数组的函数功能,比如sort()reduce()map()filter()等。为了让这些原生的数组函数功能也能用于其上面,需要将节点列表转换成数组。可以使用[].slice.call(elements)来实现:

var elements = document.querySelectorAll("p"); // NodeList
var arrayElements = [].slice.call(elements); // Now the NodeList is an array
var arrayElements = Array.from(elements); // This is another way of converting NodeList to Array
로그인 후 복사
로그인 후 복사

数组元素的洗牌

对于数组元素的洗牌,不需要使用任何外部的库,比如Lodash,只要这样做:

var list = [1,2,3];
console.log(list.sort(function() { Math.random() - 0.5 })); // [2,1,3]
로그인 후 복사
로그인 후 복사

总结

现在你学会了些有用的JavaScript小技巧。希望这些小技巧能在工作中帮助你解决一些麻烦,或者说这篇文章对你有所帮助。如果你有一些优秀的JavaScript小技巧,欢迎在评论中与我们一起分享。

위 내용은 12가지 필수 JavaScript 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Win11 팁 공유: Microsoft 계정으로 로그인을 건너뛰는 한 가지 요령 Win11 팁 공유: Microsoft 계정으로 로그인을 건너뛰는 한 가지 요령 Mar 27, 2024 pm 02:57 PM

Win11 팁 공유: Microsoft 계정 로그인을 건너뛰는 한 가지 요령 Windows 11은 Microsoft가 출시한 최신 운영 체제로, 새로운 디자인 스타일과 많은 실용적인 기능을 갖추고 있습니다. 그러나 일부 사용자의 경우 시스템을 부팅할 때마다 Microsoft 계정에 로그인해야 하는 것이 다소 성가실 수 있습니다. 당신이 그들 중 하나라면, Microsoft 계정 로그인을 건너뛰고 데스크탑 인터페이스로 직접 들어갈 수 있는 다음 팁을 시도해 볼 수도 있습니다. 먼저 로그인하려면 Microsoft 계정 대신 시스템에 로컬 계정을 만들어야 합니다. 이렇게 하면 장점은

베테랑의 필수품: C 언어의 * 및 &에 대한 팁과 주의사항 베테랑의 필수품: C 언어의 * 및 &에 대한 팁과 주의사항 Apr 04, 2024 am 08:21 AM

C 언어에서는 다른 변수의 주소를 저장하는 포인터를 나타내고, &는 변수의 메모리 주소를 반환하는 주소 연산자를 나타냅니다. 포인터 사용에 대한 팁에는 포인터 정의, 포인터 역참조 및 포인터가 유효한 주소를 가리키는지 확인하는 것이 포함됩니다. 주소 연산자 사용에 대한 팁에는 변수 주소 가져오기 및 배열 요소의 주소를 가져올 때 배열의 첫 번째 요소 주소 반환이 포함됩니다. . 문자열을 반전시키기 위해 포인터 및 주소 연산자를 사용하는 방법을 보여주는 실제 예입니다.

초보자를 위한 양식 작성 요령은 무엇입니까? 초보자를 위한 양식 작성 요령은 무엇입니까? Mar 21, 2024 am 09:11 AM

우리는 엑셀로 표를 생성하고 편집하는 일이 많은데 이제 막 소프트웨어를 접한 초보자로서 엑셀을 이용해 표를 만드는 방법은 생각보다 쉽지 않습니다. 아래에서는 초보자, 즉 초보자가 마스터해야 할 테이블 생성의 몇 가지 단계에 대해 몇 가지 훈련을 수행합니다. 초보자를 위한 샘플 양식은 다음과 같습니다. 작성 방법을 살펴보겠습니다! 1. 새로운 엑셀 문서를 만드는 방법은 두 가지가 있습니다. [바탕화면] - [새로 만들기] - [xls] 파일의 빈 곳을 마우스 오른쪽 버튼으로 클릭하시면 됩니다. [시작]-[모든 프로그램]-[Microsoft Office]-[Microsoft Excel 20**]을 사용할 수도 있습니다. 2. 새 ex를 두 번 클릭합니다.

VSCode 시작 가이드: 초보자가 사용 기술을 빠르게 익히기 위해 꼭 읽어야 할 책입니다! VSCode 시작 가이드: 초보자가 사용 기술을 빠르게 익히기 위해 꼭 읽어야 할 책입니다! Mar 26, 2024 am 08:21 AM

VSCode(Visual Studio Code)는 Microsoft에서 개발한 오픈 소스 코드 편집기로, 강력한 기능과 풍부한 플러그인 지원을 갖추고 있어 개발자가 선호하는 도구 중 하나입니다. 이 기사에서는 초보자가 VSCode 사용 기술을 빠르게 익히는 데 도움이 되는 소개 가이드를 제공합니다. 이번 글에서는 VSCode 설치 방법, 기본적인 편집 작업, 단축키, 플러그인 설치 등을 소개하고, 독자들에게 구체적인 코드 예시를 제공하겠습니다. 1. 먼저 VSCode를 설치하세요.

PHP 프로그래밍 기술: 3초 안에 웹페이지로 이동하는 방법 PHP 프로그래밍 기술: 3초 안에 웹페이지로 이동하는 방법 Mar 24, 2024 am 09:18 AM

제목: PHP 프로그래밍 팁: 3초 안에 웹 페이지로 이동하는 방법 웹 개발을 하다 보면 일정 시간 내에 자동으로 다른 페이지로 이동해야 하는 상황이 자주 발생합니다. 이 기사에서는 PHP를 사용하여 3초 내에 페이지로 이동하는 프로그래밍 기술을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저, 페이지 점프의 기본 원리는 HTTP 응답 헤더의 Location 필드를 통해 구현됩니다. 이 필드를 설정하면 브라우저가 지정된 페이지로 자동으로 이동할 수 있습니다. 다음은 P를 사용하는 방법을 보여주는 간단한 예입니다.

공개된 Win11 트릭: Microsoft 계정 로그인을 우회하는 방법 공개된 Win11 트릭: Microsoft 계정 로그인을 우회하는 방법 Mar 27, 2024 pm 07:57 PM

공개된 Win11 트릭: Microsoft 계정 로그인을 우회하는 방법 최근 Microsoft는 새로운 운영 체제인 Windows11을 출시하여 많은 관심을 받았습니다. 이전 버전에 비해 Windows 11은 인터페이스 디자인과 기능 개선 측면에서 많은 새로운 조정이 이루어졌지만 가장 눈길을 끄는 점은 사용자가 Microsoft 계정으로 시스템에 로그인하도록 강요한다는 것입니다. . 일부 사용자의 경우 로컬 계정으로 로그인하는 데 더 익숙하고 개인 정보를 Microsoft 계정에 바인딩하는 것을 꺼릴 수 있습니다.

Laravel 양식 클래스 사용 팁: 효율성을 높이는 방법 Laravel 양식 클래스 사용 팁: 효율성을 높이는 방법 Mar 11, 2024 pm 12:51 PM

양식은 웹 사이트나 응용 프로그램을 작성하는 데 있어 필수적인 부분입니다. 널리 사용되는 PHP 프레임워크인 Laravel은 풍부하고 강력한 양식 클래스를 제공하여 양식 처리를 보다 쉽고 효율적으로 만듭니다. 이 글에서는 개발 효율성을 향상시키는 데 도움이 되는 Laravel 폼 클래스 사용에 대한 몇 가지 팁을 소개합니다. 다음은 구체적인 코드 예시를 통해 자세히 설명합니다. 양식 생성하기 Laravel에서 양식을 생성하려면 먼저 뷰에 해당 HTML 양식을 작성해야 합니다. 양식 작업 시 Laravel을 사용할 수 있습니다.

Go 언어의 함수 리팩토링 기술에 대한 심층적인 이해 Go 언어의 함수 리팩토링 기술에 대한 심층적인 이해 Mar 28, 2024 pm 03:05 PM

Go 언어 프로그램 개발에 있어서 기능 재구성 능력은 매우 중요한 부분입니다. 기능을 최적화하고 리팩터링하면 코드 품질과 유지 관리 가능성을 향상시킬 수 있을 뿐만 아니라 프로그램 성능과 가독성도 향상시킬 수 있습니다. 이 기사에서는 독자가 이러한 기술을 더 잘 이해하고 적용할 수 있도록 특정 코드 예제와 결합된 Go 언어의 함수 재구성 기술을 탐구합니다. 1. 코드 예제 1: 중복된 코드 조각 추출 실제 개발에서는 재사용된 코드 조각을 자주 접하게 됩니다. 이때 반복되는 코드를 독립적인 함수로 추출하는 것을 고려해 볼 수 있습니다.

See all articles