찾다
웹 프론트엔드JS 튜토리얼자바스크립트 학습 입문 2부 js Type_기본 지식

이전 기사에서는 js의 일부 개념(어휘 구조)과 데이터 유형(일부)에 대해 설명했습니다. 이 장을 계속 진행한 다음 js에서 데이터와 기능을 작동하는 범위에 대해 알아 보겠습니다.

1. 객체와 기본 유형 간의 변환:
객체가 비어 있지 않은 한, Boolean 환경에서는 true입니다.
new Boolean(false); 🎜 >new Number(0);
new String("");
new Array()
위의 내부 값은 false이지만 개체의 값은 true입니다. valueOf() ? toString()
그중 Date 클래스가 먼저 toString() 변환을 수행합니다.

2. js에서 데이터 값 조작:
모든 언어에는 고유한 데이터 조작 방법이 있습니다.
Js에서도 예외는 아닙니다.
1) 복사하세요. 예를 들어 새 변수에 할당합니다.
2) 함수나 메소드에 매개변수로 전달합니다.
3) 다른 값과 비교할 수 있습니다.

Js는 값에 의한 전달과 주소에 의한 전달의 두 가지 방법을 통해 이러한 데이터의 값을 조작합니다.
이름에서 알 수 있듯이 값 전달은 값을 전달하여 데이터를 조작하는 것입니다. 할당 프로세스 중에 실제 값이 복사되어 새 변수에 저장됩니다. 복사된 값과 원래 값은 완전히 독립적인 두 값입니다. 따라서 복사된 값을 변경해도 원래 값에는 영향을 미치지 않습니다. 크기를 비교할 때 일반적으로 바이트 단위 비교가 수행됩니다.
주소 전달(Passing address) 이름에서 알 수 있듯이 주소를 전달하여 데이터를 조작하는 것입니다. 할당 과정에서 실제 값(참조라고 할 수 있음)의 주소가 복사됩니다. 완전히 독립적이지 않기 때문에 참조를 통해 값을 변경하면 원래 값도 변경됩니다. 크기를 비교할 때 일반적으로 동일한 주소를 참조하는지 확인하기 위해 비교됩니다.
간단한 주소 전달 예:
var a = new Date();
alert(a.getDate())
var b = a
b.setDate(21); 🎜>alert(a.getDate()) // 출력 21

3, 일반적으로 말하면:
기본적인 데이터 유형은 값을 전달하여 작동됩니다. (기본 데이터 유형이 무엇인지 잊어버리면 다시 찾아보면 됩니다.)
객체 데이터 유형은 주소를 전달하여 작동됩니다. (예: 배열 및 함수)
예:
<script>//값 전달<br/>a=1 <br/>b=a; Alert (a); //출력 1 <br/><br/>//주소 <br/>x=[1,2] <br/>y=x; // y에 할당된 것은 x에 대한 참조일 뿐입니다. x 자체가 아닙니다. 이 코드를 실행한 후에도 배열 개체는 여전히 하나이지만 이에 대한 참조는 두 개 있습니다. <br/>y[0]=2; <br/>alert(x[0] " | " x[1]) //출력 2 | 2 <br/></script> 문자열:
js의 문자열은 주소별로 복사되어 전달되며 값으로 비교됩니다.
객체와 배열은 값으로 전달되지만 전달된 값은 실제로 객체 자체가 아닌 참조입니다.
요약: 유형 복사 및 통신 비교
디지털 디지털 값 값 값
부울 다이브 값 값 값
Strough Strings Invasion and Uncosty Value 전달된 주소
는 불변입니다. JS에서는, 문자열 값의 내용을 변경할 수 있는 방법이 없습니다.
문자열의 경우 값으로 전달할지, 주소로 전달할지는 별 의미가 없습니다.

4. 가비지 수집 메커니즘:
Js에서 메모리를 자동으로 해제합니다.
예:
var s = “heelo”;
var b = s.toUpperCase();
s=b; //여기에서 실행하면 js가 자동으로 특정 객체를 감지합니다. s=b이기 때문에 js는 문자열 "heelo"가 차지하는 저장 공간을 자동으로 해제합니다. 즉, 더 이상 원래의 "heelo" 값을 얻을 수 없습니다.

5, 자바스크립트 변수:
Js는 유형이 지정되지 않았습니다. 해당 변수는 모든 유형의 값을 보유할 수 있습니다.

변수 선언:
var a ;
var b
또는
var a, b
var a=0, b=1; 🎜>
중복 선언은 허용됩니다.
선언이 생략되면 js는 변수를 암시적으로 선언합니다. 물론 암시적으로 선언된 변수는 항상 전역 변수입니다.

6, 변수 범위:
Js에는 전역과 로컬의 두 가지 유형이 있습니다.
이름의 정의를 보면 전역 변수의 범위가 전역임을 알 수 있습니다.
JS 코드에는 어디에나 정의가 있습니다.
지역변수의 범위는 지역적입니다.
함수 본문에 정의됩니다.

이름이 같은 지역 변수는 이름이 같은 전역 변수보다 우선순위가 높습니다. 다음 예에서는 이를 보여줍니다.
var a ="abc"; //전역 변수
function check( ){
var a = "efg"; //같은 이름의 지역 변수
document.write(a);}
check(); // efg 출력

더 전형적인 예를 살펴보세요:
varscope = "global"
function f(){
Alert(scope) ; //정의되지 않은 출력
varscope = "local";
경고(범위); //출력 로컬
}
f()>왜 첫 번째가 출력되나요? ? 정의되지 않은 경우는 어떻습니까?
js에서는 지역 변수와 전역 변수의 이름이 같을 때 함수 본문에서 같은 이름을 가진 전역 변수가 숨겨지도록 규정하고 있기 때문입니다.
그러면 지금의 예는 실제로 다음과 같습니다.
function f(){
var range;
Alert(scope)
range = "local"
Alert(scope) );
}
f();
이 예를 이해했다면 로컬과 글로벌의 차이점을 어느 정도 이해했다는 의미입니다.

7, 변수 범위:
내부에서 외부로:
어휘 범위 범위 체인 변수 조회
var x = 1
function f(){
var y = 2;
함수 g(){
var z
}

} g() 객체 호출




f() 객체 호출 y =2;




여기에 전역 변수 x = 1이 정의되어 있나요?

아니요
값 가져오기
여기에 정의되어 있나요?

아니요
값 가져오기
여기에 정의되어 있나요?

아니요
값 가져오기
정의되지 않음

8, 클라이언트 전역 변수:
클라이언트 js에서 Window 개체는 전역 개체인 브라우저 창을 나타냅니다. ,
예를 들어 일반적으로 사용되는parseInt() 및 Math()는 Window 객체에 의해 정의된 속성입니다.

Js는 전역 변수의 다중 실행 환경을 허용하며, 각 환경은 서로 다른 전역 개체를 갖습니다.
예: 클라이언트 js의 각 독립 브라우저 창 또는 동일한 창의 서로 다른 프레임.
그 안의 코드는 모두 자체 실행 환경에서 실행되며 자체 전역 개체를 갖습니다.
물론 parent.frames[0].x 표현식을 사용하여 첫 번째 프레임에서 전역 변수 x를 참조할 수 있습니다. 이렇게 하면 코드가 다른 프레임에 연결됩니다.
하지만 여기에는 보안 문제가 있습니다.

요약;
주로 "값 전달과 주소 전달" 및 기능 범위에 대해 이야기합니다.
초보자에게는 다소 이해하기 어렵습니다. 그래도 이해가 안 되신다면 구글에서 정보를 검색해 보세요



성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
es6数组怎么去掉重复并且重新排序es6数组怎么去掉重复并且重新排序May 05, 2022 pm 07:08 PM

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

JavaScript的Symbol类型、隐藏属性及全局注册表详解JavaScript的Symbol类型、隐藏属性及全局注册表详解Jun 02, 2022 am 11:50 AM

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

原来利用纯CSS也能实现文字轮播与图片轮播!原来利用纯CSS也能实现文字轮播与图片轮播!Jun 10, 2022 pm 01:00 PM

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

JavaScript对象的构造函数和new操作符(实例详解)JavaScript对象的构造函数和new操作符(实例详解)May 10, 2022 pm 06:16 PM

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

JavaScript面向对象详细解析之属性描述符JavaScript面向对象详细解析之属性描述符May 27, 2022 pm 05:29 PM

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

javascript怎么移除元素点击事件javascript怎么移除元素点击事件Apr 11, 2022 pm 04:51 PM

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

foreach是es6里的吗foreach是es6里的吗May 05, 2022 pm 05:59 PM

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

整理总结JavaScript常见的BOM操作整理总结JavaScript常见的BOM操作Jun 01, 2022 am 11:43 AM

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

See all articles

핫 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 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SecList

SecList

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

PhpStorm 맥 버전

PhpStorm 맥 버전

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