목차
7 데이터 유형
Judge 데이터 유형(방법, 장단점)
6种声明变量的方法
var:变量提升,没有块级作用域
const: 常量,地址不变,但是属性可以变
let: 块作用域,暂时性死区(TDZ),不进行变量提升,不允许重复声明
import:es6模块化解决方案
class:es6继承解决方案
类型转化
1.自动装包
2.强行转化为数字
3.-转化
5.布尔值Boolean
6.==和===
웹 프론트엔드 JS 튜토리얼 JavaScript 기본 데이터 정리

JavaScript 기본 데이터 정리

Feb 28, 2019 pm 01:16 PM
javascript 프런트 엔드 회견

본 글은 자바스크립트의 기본 데이터를 정리한 내용으로, 참고할만한 가치가 있으니 도움이 필요한 분들에게 도움이 되었으면 좋겠습니다.

ES6, Elevation, MDN을 결합한 몇 가지 정보를 읽은 후 JS의 핵심 지식 포인트를 정리했습니다. 지면의 제약으로 인해 여기서는 제가 중요하다고 생각하는 지식들만 소개하겠습니다. 상식적인 내용은 고도화를 참조하고, 핵심 지식 포인트를 확장하려면 내 다른 기사를 참조하면 됩니다. 이 기사는 JS 지식 포인트의 검토/서프라이즈 활용에 적합하며 프론트 엔드 인터뷰 가이드로도 사용할 수 있습니다.

7 데이터 유형

기본 데이터 유형: 스택 메모리에 저장되고 값에서 작동

null: null 포인터이므로 null 유형 ==> ;Object

undefine: 정의되지 않음이 정의됨

Number: 숫자

String: 문자열

기호: 인스턴스는 다음과 같습니다. 고유하고 변경할 수 없는 데이터 유형입니다.

Boolean: 부울 값

참조 데이터 유형: 힙 메모리에 저장되고 공간 주소에서 작동

Object: 구체적으로 배열, 함수일 수 있습니다. , RegExp, Date

Judge 데이터 유형(방법, 장단점)

typeof: 기본 유형에서 Null이 아닌 것만 판단할 수 있으며, 참조 데이터 유형은 판단할 수 없습니다. (모두 객체에 대한 것이기 때문에) 연산자입니다它是操作符

typeof ''  // ==> string
typeof 1  //==> number
typeof true  //==>boolean
typeof undefined  //==>undefined
let b = Symbol() ; typeof b //==>symbol
-----------------下面的判断不了实际类型了-----------------------
typeof function fn(){} //==>function
typeof null //==>object
typeof [1,2,3] //==>object
typeof {} //==>object
로그인 후 복사

instanceof:用于测试构造函数的prototype属性是否出现在对象的原型链中的任何位置,可以用它来判断Array但是不够优雅且有一定风险

let arr = [1,2,3]
arr instanceof Array //==>true
arr instanceof Object //==>true
로그인 후 복사
instanceof操作符的问题在于,它只有一个全局执行环境,如果网页有多个框架,那实际上就存在两个以上的不同的全局执行环境,从而存在两个以上不同版本的Array构造函数。如果从一个框架想另外一个框架传入一个数组,那么传入的数组与在第二个框架中原生创建的数组分别具备各自不同的构造函数 ----高程page88 (笔者白话问翻译一下:风险来至原型链的重写

constructor:原理也是基于原型链,风险同样来之于原型链的重写,比如当你在多个frame中来回穿梭的时候,这两种方法就亚历山大了。由于每个iframe都有一套自己的执行环境,跨frame实例化的对象彼此是不共享原型链的,因此导致上述检测代码失效!

isNaN:这个方法会先调用Number,所以不是很好用

   console.log(isNaN("1px"));   //先调用Number('1px'),返回NaN,然后再调用isNaN(NaN)返回true
   //燃鹅 '1px'客观并不是NaN
로그인 후 복사
    [1,2,3,1].constructor === Array; // true
로그인 후 복사

-----------------------------------------------比较好的方法--------------------------------

Object.prototype.toString.call()

    Object.prototype.toString.call(null) // ==> [object Null]
    Object.prototype.toString.call([]) // ==> [object Array]
로그인 후 복사

-------------------------------------------------优雅的方法---------------------

如果需要单独判断Array

Array.isArray([]) //==>true
로그인 후 복사

如果需要单独判断null

let a = null
Object.is(a , null) //==>true
로그인 후 복사

6种声明变量的方法

ES5 只有两种声明变量的方法:var命令和function命令。ES6 除了添加let和const命令,后面章节还会提到,另外两种声明变量的方法:import命令和class命令。所以,ES6 一共有 6 种声明变量的方法。 --es6

var:变量提升,没有块级作用域

说到var肯定要提变量提升:当前作用域,js(函数)执行前,浏览器会把带var或者function进行提前声明和定义

  1. 变量只声明,函数是声明+赋值,自执行函数定义和执行一起完成了

  2. 不受逻辑判断条件影响

  3. return 下面的也提升,但是return 里面的不提升

  4. 重复的声明可以,重新赋值即可,但是变量和方法名字不能冲突

const: 常量,地址不变,但是属性可以变

let: 块作用域,暂时性死区(TDZ),不进行变量提升,不允许重复声明

//只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响。所以下面代码不报错,外层作用域和里层作用域都有一个tmp
let tmp = 123;
    if (true) {
      let tmp =123;    
    }
//ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。
    let tmp = 123;
    if (true) {
      tmp = 'abc'; // ReferenceError
      let tmp;    
    }
로그인 후 복사

import:es6模块化解决方案

class:es6继承解决方案

类型转化

这一块内容太多,太杂了,其实我不怎么想写,因为很少有人会这么写代码。但是这块太重要了,面试必考。建议大家掌握这块的核心内容以及原则,不要关注奇淫巧技。

1.自动装包

三种包装类型:Number,Boolean,String

let s1 = '123'
let s2 = s1.slice(2)         // a是基本类型,它是没有slice方法的这里实际上后台完成了一个自动装包
---下面是实际发生的事---------
let s1 = new string('123')
let s2 = s1.slice(2)     
s1 = null      //注意这里用完就销毁了

//所以如果添加某个属性后面是调用不出来的
let s1 = '123'
s1.color = 'red'
console.log(s1.color) // ==> undefind
로그인 후 복사

这些类型(构造函数)基本都重写了它们的tostring方法

2.强行转化为数字

  • Number :将其他数据类型的值强制转换成number类型;

    console.log(Number({}));//NaN
    console.log(Number(null));// 0
    console.log(Number(undefined));// NaN
    console.log(Number([]));// 0
    console.log(Number(""));// 0
    console.log(Number(true));// 1
    console.log(Number(false));
로그인 후 복사
  • parseInt :经常用于字符串提取数字的方法; 把字符串中从左到右依次识别,直到遇到一个非有效数字,停止,把找到的数字返回;

  console.log(parseInt("12px12"));// 12
  console.log(parseInt("12.666.777px12"));// 12
  console.log(parseInt("px12.666px12"));// NaN
  console.log(parseInt(""));// NaN
  console.log(parseInt(true));// NaN
  console.log(parseInt({}));// NaN
  console.log(parseInt([]));// NaN
  console.log(parseInt(null));// NaN
  console.log(parseInt(undefined));// NaN
로그인 후 복사
  • toFixed : 保留小数点位数的方法,返回值是一个字符串

    console.log(Number("1px"));   //==> NAN
    console.log(parseInt("1px"));   //==> 1
    console.log(parseInt("p1px"));   //==> NaN
로그인 후 복사

3.-转化

会先把字符串转换成数字(Number),然后再进行计算,注意NaN,undifined参与的任何计算都是NaN

  console.log("6" - 2);//==> 4
  console.log("5px"-"4")//==> NaN (NaN-4还是NaN)
로그인 후 복사

4.+转化
            || undefined | null   | boolean | number | string | object |
=========================================================================
 undefined  || number    | number | number  | number | string | string | 
 null       || number    | number | number  | number | string | string | 
 boolean    || number    | number | number  | number | string | string | 
 number     || number    | number | number  | number | string | string | 
 string     || string    | string | string  | string | string | string | 
 object     || string    | string | string  | string | string | string |
로그인 후 복사
로그인 후 복사

instanceof: 생성자의 프로토타입 속성이 객체의 프로토타입 체인 어디에나 나타나는지 여부를 테스트하는 데 사용됩니다. 이를 사용하여 배열이 충분히 우아하지 않고 특정 위험이 있는지 확인할 수 있습니다.

    //字符串和任何类型相加都是调用String
    var  a = typeof 10 + true + [] + null + undefined+{};
    console.log(a); //==>numbertruenullundefined[object Object],{}
    console.log("6px"+undefined); ==> 6pxundefined
    console.log(NaN+"undefined");==> NaNundefined
    //经典面试题
    [1,2]+[2,1]  //==>都调用toString '1,2'+'2,1'===>'1,22,1'
로그인 후 복사
로그인 후 복사
instanceof 연산자의 문제점은 웹 페이지에 여러 프레임이 있는 경우 전역 실행 환경이 하나만 있다는 것입니다. 두 개 이상의 서로 다른 전역 실행 환경이 있으므로 Array 생성자에는 두 개 이상의 서로 다른 버전이 있습니다. 배열이 한 프레임에서 다른 프레임으로 전달되면 들어오는 배열과 두 번째 프레임에서 기본적으로 생성된 배열은 서로 다른 생성자를 갖습니다.---높이 페이지88(저자의 언어 번역: 위험은 프로토타입 체인)
constructor: 원리도 프로토타입 체인을 기반으로 하며 여러 프레임에 있을 때와 같이 프로토타입 체인을 다시 작성하는 데서 위험도 발생합니다. 앞뒤로 이 두 가지 방법이 가장 좋습니다. 각 iframe에는 자체 실행 환경이 있으므로 프레임 간에 인스턴스화된 객체는 프로토타입 체인을 서로 공유하지 않으므로 위의 감지 코드가 유효하지 않게 됩니다. #🎜🎜##🎜🎜#isNaN: 이 메서드는 먼저 전화번호라서 별로 유용하지 않아요#🎜🎜#
console.log(null==undefined) // true
console.log(undefined==undefined) // true
로그인 후 복사
로그인 후 복사
rrreee#🎜🎜#---------------------------- - -----더 나은 방법------------------------------- ----- ----#🎜🎜##🎜🎜#Object.prototype.toString.call()#🎜🎜#rrreee#🎜🎜#--------------- ----------- ------우아한 방법---- ------------- ---#🎜🎜##🎜🎜#Array를 별도로 판단해야 하는 경우#🎜🎜#rrreee#🎜🎜#Null을 별도로 판단해야 하는 경우#🎜🎜 #rrreee#🎜🎜#6가지 변수 선언 방법#🎜🎜#ES5에는 var 명령과 function 명령이라는 두 가지 변수 선언 방법만 있습니다. let 및 const 명령을 추가하는 것 외에도 ES6에서는 이후 장에서 변수를 선언하는 두 가지 다른 방법인 import 명령과 class 명령도 언급합니다. 따라서 ES6에서는 변수를 선언하는 방법이 총 6가지가 있습니다. --es6

var: 변수 승격, 블록 수준 범위 없음#🎜🎜##🎜🎜#var의 경우 변수 승격을 언급해야 합니다: 현재 범위, js(함수) 실행 전, 브라우저는 var나 함수를 미리 선언하고 정의합니다 #🎜🎜#
  1. #🎜🎜#변수는 선언만 하고, 함수는 선언 + 할당, 자체 실행 함수 정의 및 함께 실행 완료#🎜🎜#
  2. #🎜🎜#논리적 판단 조건에 영향을 받지 않음#🎜🎜#
  3. #🎜🎜#return 다음도 개선되었지만, 그 대가로 개선되지 않았습니다 #🎜🎜#
  4. #🎜🎜#중복 선언은 허용되고 재할당되지만 변수 및 메서드 이름은 충돌할 수 없습니다 #🎜🎜#

const : 상수, 주소는 변경되지 않지만 속성은 변경될 수 있습니다 #🎜🎜#

let: 블록 범위, 임시 데드 존(TDZ), 변수 승격 없음, 반복 선언은 허용되지 않습니다 #🎜🎜#rrreee

import: es6 모듈식 솔루션#🎜🎜#

class:es6 상속 솔루션#🎜🎜##🎜🎜#유형 변환#🎜🎜##🎜🎜#이 섹션에는 내용이 너무 많고 너무 복잡합니다. 사실 저는 그렇지 않습니다. 이런 코드를 작성할 수 있는 사람은 거의 없기 때문에 그것에 대해 많이 알지 못합니다. 그러나 이것은 매우 중요하므로 인터뷰에서 테스트해야 합니다. 모두가 이 영역의 핵심 내용과 원리를 숙지하고 이상한 속임수에 주의를 기울이지 않는 것이 좋습니다. #🎜🎜#

1. 자동 패키징 #🎜🎜##🎜🎜#세 가지 패키징 유형: Number, Boolean, String#🎜🎜#rrreee#🎜🎜#이러한 유형(생성자)은 기본적으로 tostring을 다시 작성했습니다. method#🎜🎜#

2. 강제로 숫자로 변환#🎜🎜#
  • #🎜🎜#Number: 기타 데이터의 값 유형은 숫자 유형으로 강제 변환됩니다. #🎜🎜#
rrreee
  • #🎜🎜#parseInt: 문자열에 자주 사용됩니다. 숫자 추출; 잘못된 숫자가 나타날 때까지 왼쪽에서 오른쪽으로 문자열을 인식하고 중지하고 찾은 숫자를 반환합니다. #🎜🎜#
rrreee
  • #🎜🎜#toFixed: 소수점 이하 자릿수를 유지하는 방법 반환값은 문자열입니다 #🎜🎜#
rrreee

3 .-Conversion#🎜🎜##🎜🎜#은 먼저 문자열을 숫자(Number)로 변환한 다음 계산을 수행합니다. NaN과 관련된 계산에 주의하세요. 모두 NaN입니다. #🎜🎜#rrreee

4.+Conversion#🎜🎜##🎜🎜#문자열로 호출할지, 전화번호로 호출할지 아래 표를 참고해주세요#🎜🎜#
            || undefined | null   | boolean | number | string | object |
=========================================================================
 undefined  || number    | number | number  | number | string | string | 
 null       || number    | number | number  | number | string | string | 
 boolean    || number    | number | number  | number | string | string | 
 number     || number    | number | number  | number | string | string | 
 string     || string    | string | string  | string | string | string | 
 object     || string    | string | string  | string | string | string |
로그인 후 복사
로그인 후 복사
    //字符串和任何类型相加都是调用String
    var  a = typeof 10 + true + [] + null + undefined+{};
    console.log(a); //==>numbertruenullundefined[object Object],{}
    console.log("6px"+undefined); ==> 6pxundefined
    console.log(NaN+"undefined");==> NaNundefined
    //经典面试题
    [1,2]+[2,1]  //==>都调用toString '1,2'+'2,1'===>'1,22,1'
로그인 후 복사
로그인 후 복사

5.布尔值Boolean

其他数据类型转布尔类型是false有且只有五个值: 0  ""  NaN null  undefined  
所以boolean({}) 或者boolean([]) 都是真

6.==和===

===是全等,==是类型转化后再判断,规则比较复杂。这里我认为除了准备面试需要看看,平时基本不会用,所以这个知识性价比非常低,学了用不到也会忘,大家自己把握,详细规则可以搜我其他文章
平时除了判断a是否是undefined或者是null(jq源码里面都用法)都时候其他情况下都用===

console.log(null==undefined) // true
console.log(undefined==undefined) // true
로그인 후 복사
로그인 후 복사


위 내용은 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)

PHP와 Vue: 프런트엔드 개발 도구의 완벽한 조합 PHP와 Vue: 프런트엔드 개발 도구의 완벽한 조합 Mar 16, 2024 pm 12:09 PM

PHP와 Vue: 프론트엔드 개발 도구의 완벽한 조합 오늘날 인터넷이 빠르게 발전하는 시대에 프론트엔드 개발은 점점 더 중요해지고 있습니다. 사용자가 웹 사이트 및 애플리케이션 경험에 대한 요구 사항이 점점 더 높아짐에 따라 프런트 엔드 개발자는 보다 효율적이고 유연한 도구를 사용하여 반응형 및 대화형 인터페이스를 만들어야 합니다. 프론트엔드 개발 분야의 두 가지 중요한 기술인 PHP와 Vue.js는 함께 사용하면 완벽한 도구라고 볼 수 있습니다. 이 기사에서는 독자가 이 두 가지를 더 잘 이해하고 적용할 수 있도록 PHP와 Vue의 조합과 자세한 코드 예제를 살펴보겠습니다.

간단한 JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법 간단한 JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법 Jan 05, 2024 pm 06:08 PM

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용

프론트엔드 면접관이 자주 묻는 질문 프론트엔드 면접관이 자주 묻는 질문 Mar 19, 2024 pm 02:24 PM

프론트엔드 개발 인터뷰에서 일반적인 질문은 HTML/CSS 기초, JavaScript 기초, 프레임워크 및 라이브러리, 프로젝트 경험, 알고리즘 및 데이터 구조, 성능 최적화, 크로스 도메인 요청, 프론트엔드 엔지니어링, 디자인 패턴, 새로운 기술 및 트렌드. 면접관 질문은 후보자의 기술적 능력, 프로젝트 경험, 업계 동향에 대한 이해를 평가하기 위해 고안되었습니다. 따라서 지원자는 자신의 능력과 전문성을 입증할 수 있도록 해당 분야에 대한 충분한 준비를 갖추어야 합니다.

Django는 프론트엔드인가요, 백엔드인가요? 확인 해봐! Django는 프론트엔드인가요, 백엔드인가요? 확인 해봐! Jan 19, 2024 am 08:37 AM

Django는 빠른 개발과 깔끔한 ​​방법을 강조하는 Python으로 작성된 웹 애플리케이션 프레임워크입니다. Django는 웹 프레임워크이지만 Django가 프런트엔드인지 백엔드인지에 대한 질문에 답하려면 프런트엔드와 백엔드의 개념에 대한 깊은 이해가 필요합니다. 프론트엔드는 사용자가 직접 상호작용하는 인터페이스를 의미하고, 백엔드는 HTTP 프로토콜을 통해 데이터와 상호작용하는 서버측 프로그램을 의미합니다. 프론트엔드와 백엔드가 분리되면 프론트엔드와 백엔드 프로그램을 독립적으로 개발하여 각각 비즈니스 로직과 인터랙티브 효과, 데이터 교환을 구현할 수 있습니다.

Go 언어 프런트엔드 기술 탐색: 프런트엔드 개발을 위한 새로운 비전 Go 언어 프런트엔드 기술 탐색: 프런트엔드 개발을 위한 새로운 비전 Mar 28, 2024 pm 01:06 PM

빠르고 효율적인 프로그래밍 언어인 Go 언어는 백엔드 개발 분야에서 널리 사용됩니다. 그러나 Go 언어를 프런트엔드 개발과 연관시키는 사람은 거의 없습니다. 실제로 프런트엔드 개발에 Go 언어를 사용하면 효율성이 향상될 뿐만 아니라 개발자에게 새로운 지평을 열어줄 수도 있습니다. 이 기사에서는 프런트엔드 개발에 Go 언어를 사용할 수 있는 가능성을 살펴보고 독자가 이 영역을 더 잘 이해할 수 있도록 구체적인 코드 예제를 제공합니다. 전통적인 프런트엔드 개발에서는 사용자 인터페이스를 구축하기 위해 JavaScript, HTML, CSS를 사용하는 경우가 많습니다.

Django: 프론트엔드와 백엔드 개발을 모두 처리할 수 있는 마법의 프레임워크! Django: 프론트엔드와 백엔드 개발을 모두 처리할 수 있는 마법의 프레임워크! Jan 19, 2024 am 08:52 AM

Django: 프론트엔드와 백엔드 개발을 모두 처리할 수 있는 마법의 프레임워크! Django는 효율적이고 확장 가능한 웹 애플리케이션 프레임워크입니다. MVC, MTV를 포함한 다양한 웹 개발 모델을 지원할 수 있으며 고품질 웹 애플리케이션을 쉽게 개발할 수 있습니다. Django는 백엔드 개발을 지원할 뿐만 아니라 프런트엔드 인터페이스를 빠르게 구축하고 템플릿 언어를 통해 유연한 뷰 표시를 구현할 수 있습니다. Django는 프론트엔드 개발과 백엔드 개발을 완벽한 통합으로 결합하므로 개발자가 전문적으로 학습할 필요가 없습니다.

Golang 프레임워크 인터뷰 질문 모음 Golang 프레임워크 인터뷰 질문 모음 Jun 02, 2024 pm 09:37 PM

Go 프레임워크는 Go의 내장 라이브러리를 확장하여 사전 구축된 기능(예: 웹 개발 및 데이터베이스 운영)을 제공하는 구성 요소 집합입니다. 널리 사용되는 Go 프레임워크에는 Gin(웹 개발), GORM(데이터베이스 운영) 및 RESTful(API 관리)이 포함됩니다. 미들웨어는 HTTP 요청 처리 체인의 인터셉터 패턴으로, 핸들러를 수정하지 않고 인증이나 요청 로깅 등의 기능을 추가하는 데 사용됩니다. 세션 관리는 사용자 데이터를 저장하여 세션 상태를 유지합니다. gorilla/sessions를 사용하여 세션을 관리할 수 있습니다.

선택된 Java JPA 인터뷰 질문: 지속성 프레임워크에 대한 숙달도 테스트 선택된 Java JPA 인터뷰 질문: 지속성 프레임워크에 대한 숙달도 테스트 Feb 19, 2024 pm 09:12 PM

JPA 란 무엇입니까? JDBC와 어떻게 다른가요? JPA(JavaPersistence API)는 ORM(객체 관계형 매핑)을 위한 표준 인터페이스로, 이를 통해 Java 개발자는 데이터베이스에 대해 직접 SQL 쿼리를 작성하지 않고도 친숙한 Java 객체를 사용하여 데이터베이스를 작동할 수 있습니다. JDBC(JavaDatabaseConnectivity)는 데이터베이스에 연결하기 위한 Java의 표준 API로, 개발자가 데이터베이스를 작동하려면 SQL 문을 사용해야 합니다. JPA는 JDBC를 캡슐화하고 객체 관계형 매핑을 위한 보다 편리하고 높은 수준의 API를 제공하며 데이터 액세스 작업을 단순화합니다. JPA에서 엔터티란 무엇입니까? 실재

See all articles