황금률 1:
JS에는 블록 수준 범위가 없습니다(자신만의 클로저나 다른 메서드로 구현할 수 있음). 함수 외부의 변수는 함수 내부에서 찾을 수 있지만 함수 내부의 변수는 찾을 수 없습니다. 함수 외부에서 찾을 수 있습니다.
첫 번째 시도:
이게 왜요? ?
var a = 10; function aaa(){//step-4 alert(a);//step-5->执行alert,此时只能找到外面的a=10故弹框10 } function bbb(){//step-2 var a = 20; aaa();//step-3 } //定义了函数没啥用,调用才是真格的所以这里是step-1 bbb();//step-1
실제로 실수하기 쉽다는 것은 누구나 알고 있는 사실입니다.
두 번째 시도:
이게 왜요? b를 a에 대입할 때 b가 정의되지 않았기 때문에 a는 정의되지 않고 b는 10입니다.
황금률 2:
변수 검색은 근접성 원칙을 기반으로 합니다. var로 정의된 변수를 찾습니다. 변수가 근처에 없으면 외부 레이어를 검색합니다.
보기:
이게 왜요? 여기에는 두 가지 이유가 있는데, 하나는 사전 분석이고, 다른 하나는 주변 검색입니다.
var a=10; function aaa(){ alert(a);//undefined,查找a的时候会现在函数内查找,由于预解析的作用,此时的a是undefined,因此永远不会去查找外面的10了 var a = 20; /*预解析 var a alert(a); var a = 20;*/ } aaa();
주의:
그럼 두 번째 점을 확인시켜주는 점입니다. 근접성 원칙이지만 var로 선언한 변수는 근처에서 발견됩니다. 이는 var 없이 선언된 변수가 전역 변수이고 여기서는 a의 값만 수정되기 때문입니다. 그래서 위의 내용은 var의 a가 함수에서 발견되지 않아서 밖에 나가서 찾아보자마자 발견해서 a가 10으로 경고를 받았는데, a 이후에 나온 것은 사실입니다. =20, a는 20입니다. 아직 알림이 실행되지 않았을 뿐입니다~~
어디보자~
다음 예에서는 js의 기능 범위를 추가로 확인합니다.
alert(a) 시점에는 bbb 함수의 a가 실제로 20인데, 이때는 문장 경고(a)에 국한되어 있어 전혀 찾을 수 없기 때문입니다. bbb 함수에서 a를 발견해서 aaa 함수에서 a를 찾지 못해서 밖을 찾아 10을 찾았습니다.
황금률 3:
매개변수 이름이 지역 변수와 같은 경우 우선순위는 동일합니다.
예:
또한: 매개변수를 전달할 때 기본 유형은 값으로 전달되고 참조 유형은 참조로 전달됩니다. (단, 재배치 이후에는 그렇지 않습니다.)
var a = 5; var b = a; b +=3; alert(a);//5 var a = [1,2,3]; var b=a; b.push(4); alert(a);//[1,2,3,4];
위 코드에는 문제가 없지만, 다음 코드는 다릅니다.
b가 다시 할당되어 더 이상 a를 가리키지 않기 때문입니다.
또한 매개변수와 변수의 범위는 유사합니다.
이 두 가지를 비교해보세요:
위 매개변수는 기본형으로 값만 전달됩니다. 아래는 참조형입니다. (재할당도 포함)

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

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

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

뜨거운 주제



