이 기사에서는 30 줄 미만의 JS 코드로 Excel 테이블을 구현하는 방법에 대해 설명합니다. jQuery는 대체 할 수 없다는 것을 알 수 있습니다. 참조를 위해 공유하십시오. 특정 분석은 다음과 같습니다.
외국 프로그래머는 Native JS가 작성한 Excel 테이블 응용 프로그램을 시연했으며 다음과 같은 기능을 갖춘 타사 라이브러리에 의존하지 않습니다.
∎ 30 줄 미만의 기본 JavaScript 코드로 구현
② 타사 라이브러리에 의존하지 않습니다
③ Excel 스타일 시맨틱 분석 (공식은 "="로 시작합니다)
∎ 모든 표현을 지원합니다 (= A1+B2*C3)
⑤ 원형 참조를 방지합니다
localStorage를 기반으로하는 자동 로컬 영구 스토리지
효과 디스플레이는 아래 그림에 나와 있습니다.
코드 분석 :
CSS는 생략되며 HTML 코어는 단 하나 일뿐입니다.
다음과 같이 코드를 복사하십시오. <pable> </table>
JavaScript 코드는 다음과 같습니다.
다음과 같이 코드를 복사하십시오. for (var i = 0; i <6; i ++) {
var row = document.querySelector ( "테이블"). InserTrow (-1);
for (var j = 0; j <6; j ++) {
var ender = string.fromcharcode ( "a".charcodeat (0)+j-1);
row.insertcell (-1) .innerhtml = i && j? "": I || 편지;
}
}
var data = {}, inputs = []. slice.call (document.querySelectorall ( "input"));
inputs.foreach (function (elm) {
elm.onfocus = function (e) {
e.target.value = localstorage [e.target.id] || "";;
};
elm.onblur = function (e) {
LocalStorage [e.target.id] = e.target.value;
computeall ();
};
var getter = function () {
var value = localStorage [elm.id] || "";;
if (value.charat (0) == "=") {
(데이터) 반환 평가 (value.substring (1));
} else {return isnan (parsefloat (value))? 값 : parsefloat (값); }
};
object.defineProperty (data, elm.id, {get : getter});
Object.DefineProperty (data, elm.id.tolowercase (), {get : getter});
});
(window.computeall = function () {
inputs.foreach (function (elm) {try {elm.value = data [elm.id];} catch (e) {}});
}) ();
실제로 위의 기사를 통해 가장 핵심 단계는 다음과 같은 EMEASCRIPT5 및 HTML5의 기능을 사용한다는 것을 알 수 있습니다.
QuerySelectorALL : jQuery Selectors와 유사한 쿼리를 제공합니다. jQuery와 같은 제 3 자 JS 라이브러리가 반드시 많은 수는 아님을 알 수 있습니다.
코드 사본은 다음과 같습니다. var matches = document.querySelectorAll ( "Div.Note, Div.Alert");
DefineProperty는 클래스가 Java의 Get and Set Access/Set Preprocessing Methods와 같은 다른 구성 속성과 같은 다른 구성 속성을 제공합니다.
코드 사본은 다음과 같습니다. object.defineProperty (o, "b", {get : function () {return bvalue;},
세트 : 함수 (newValue) {bvalue = newValue; },
열거 가능 : 사실,
구성 가능 : true});
이 기사가 모든 사람의 JavaScript 프로그래밍에 도움이되기를 바랍니다.