개발2019. 2. 13. 10:33


"Types are not supported by current JavaScript version"


2016년부터 개발 도구로 IntelliJ를 사용했는데 그때 설치한 버전을 지금까지 업데이트 없이 사용중이었다.

새로운 솔루션을 로컬에서 구동하기 위해서는 최신버전이 필요해 최신버전을 설치 했는데 JavaScript파일에서 수많은 에러들이 발생했다. 에러의 원인은 위와 같았다. 찾아보니 에러가 발생하는 곳에가서 Alt + Enter하고 ES6로 변경하면 문제는 해결된다. 모든 파일들을 다시 인덱싱 해서 시간은 몇초 이상 소요가 된다.


Posted by Z700zZz
JavaScript2018. 1. 11. 17:01

JavaScript의 function에 ajax통신을 여러번 하거나 ajax통신 후 그 결과 값에 따라 다른 처리를 할 경우에 ajax통신은 비동기 방식이기 때문에 통신이 다 끝나기전 다른 처리가 먼저 싱행 되는 경우가 종종 있다.

이런 비동기 방식을 동기 방식으로 처리 하는게 async와 await다.


async functionName(){

await ajaxFunction();

}


ajaxFunction(){

ajax.get.....

}


function에 async를 써주고 ajax통신 하려고 하는 곳에 await를 선언해서 실행 해주면 된다.

Posted by Z700zZz
JavaScript2017. 10. 9. 18:15

JavaScript에서 객체 타입을 알아야 하는 경우가 있다.


typeof를 사용하면 객체의 타입을 쉽게 알수 있지만 object인지 Array인지를 알아야 하는 경우가 생기는데 그럴땐 Array.isArray()를 사용하면 이 객체가 object인지 Array인지를 알수 있다.


Array.isArray(object);

 

이 객체가 Array면 true를 리턴하고 아니라면 false를 리턴한다.


typeof는 undefined를 가려 낼때 주로 사용한다.

undefined를 가려 낼때 흔히 object == undefined라든가 object == 'undefined'를 사용하는데 제대로 구분을 하지 못할때가 있다.

아예 구분하지 못하던가..


typeof object == 'undefined'를 사용하도록 하자.

Posted by Z700zZz
JavaScript2016. 6. 29. 10:44

게시물 작성시 금칙어가 포함 된 경우 이를 알려주는 것을 JavaScript로 구현..


금칙어는 배열로 가지고 있어야 하는 전재 조건이다.



var titleContents = "금칙어 내용";

var ban_word_list = [];


for(var i = 0;i < word_list.length;i++){ 

if(titleContents.indexOf(word_list[i]) > -1) {

if(ban_word_list.indexOf('"' + word_list + '"') < 0){

ban_word_list.push('"' + word_list + '"');

}

}

}

if(ban_word_list.length > 0){

alert("입력하신 제목과 내용에 금칙어인 " + ban_word_list.join(", ") + "를 포함하고 있습니다.");

}


문장에서 금칙어 리스트에 있는 단어가 포함 되어 있을 경우 그 단어를 배열에 담는 방식.

배열에 담은 금칙어가 없을 경우에만 배열에 담는 부분을 추가해서 금칙어의 중복을 막았다.

인터넷에 떠다니는 http://okky.kr/article/133978 소스코드를 참고해서 구현함.

Posted by Z700zZz
JavaScript2015. 2. 11. 09:40

var result = window.confirm('삭제하시겠습니까?');

if(result) {

block of code;

}


위와 같이 사용하면 confirm창이 나타나며 확인과 취소 누를시 true와 false를 반환한다.

그게 맞게 코드를 작성하면 된다.

Posted by Z700zZz
JavaScript2014. 12. 24. 21:58

자바 스크립트의 Undefined Check..


var undefinedCheck = undefined;


if(typeof undefinedCheck === undefined){

alert("typeof undefinedCheck === undefined");

}


if(typeof undefinedCheck == undefined){

alert("typeof undefinedCheck == undefined");

}


if(typeof undefinedCheck === "undefined"){

alert("typeof undefinedCheck === 'undefined'");

}


if(typeof undefinedCheck == "undefined"){

alert("typeof undefinedCheck == 'undefined'");

}


위의 코드에서 실행 되는건 마지막 두개..


타입 체크 할때 undefined 자체를 객체로 인식해 비교 하는줄 알았는데..

그게 아니라 문자열로 비교를 한다.

Posted by Z700zZz
JavaScript2014. 12. 5. 16:56

JavaScript에서 문자열으 치환할때 사용하는 함수는 replace()를 이요한다.


string.replace("beforeString", "replaceString");


위의 코드를 사용 할 경우 문장에서 첫번째 글자나 단어만 치환된다.


그럼 아래 와같은 코드를 사용 하면 모두 바꿀 수 있다.


string.replace(/beforeString/gi, "replaceString");


고치기 이전의 단어를 감싸던 곁따옴표나 홑따옴표 대신 /를 이용해서 단어를 감싸고 옵션격인 gi를 붙여준다.

g는 문자열을 모두다 검색한다는 옵션이고, i는 대소문자를 가리지 않고 검사 한다는 옵션이다.

정규표현식 신기하네..

Posted by Z700zZz
JavaScript2013. 1. 30. 10:25

JavaScript - 함수


함수?

JavaScript에서는 함수도 하나의 자료형으로 볼수 있다.

JavaScript의 함수 종류에는 익명 함수와 선억적 함수로 나뉜다.


익명함수

 var FunctionName = function(){} - 함수 선언.

 FunctionName(); - 함수 호출(사용)


선언적 함수

 function FunctionName(){} - 함수 선언.

 FunctionName(); 함수 호출(사용).


 

언뜻 보면 익명 함수와 선언적 함수 같아 보인다. 하지만 차이점은 있다. 그 차이점은 무엇인가?

 FunctionName();

 var FunctionName = function(){}

 

익명 함수의 경우 함수가 선언되기 이전에 함수를 사용할 경우 오류가 발생해 실행 되지 않는다.

 FunctionName();

 function FunctionName(){}

 

 선언적 함수는 선언과 사용의 순서와 상관없이 실행된다.

 차이점은 브라우저는 Script의 내용을 읽기전 먼저 선언적 함수를 읽어들인다 그렇기 때문에 선언적 함수의 경우엔 선언의 위치와 상관없이 사용이 가능한 것이다.

 그리고 동일한 이름의 함수가 2개 선언되고 호출 되었을 경우 뒤에 위치한 함수가 호출될 경우..함수도 코드의 집합을 나타내는 자료형이기 때문에 뒤에 위치한 함수가 이전에 선언한 함수를 덮어 씌운다. 그래서 이후에 선언한 함수가 실행 된다.




Posted by Z700zZz
JavaScript2012. 5. 23. 14:52

JavaScript의 배열의 선언에 대해서 알아 보겠다.


var array1 = new Array();


Array()는 길이가 정해지지 않은 배열을 선언 할 때 사용 된다.


var array2 = new Array(5);


Array(5)는 길이가 5인 배열을 선언 한다.


var array3 =  new Array(111, 222, 333, 444);


Array(111, 222, 333, 444)는 배열에 111, 222, 333, 444네개의 데이터를 갖는 배열을 선언 한다.


상황에 맞게 선언 하도록 하자.

Posted by Z700zZz
JavaScript2012. 5. 22. 15:55

JavaScript의 삼항 연산자란 무엇일까?


다음과 같은 if문이 있다.


var i = 1;

if(i > 0){

alert("0보다 크다");

}else{

alert("0보다 작다");

}


위와 같은 간단한 if문의 경우 삼항연산자를 이용하여 간단하게 표현해줄 수 있다.


(i > 0) ? alert("0보다 크다") : alert("0보다 작다");


앞에 괄호에는 비교하려는 식을 넣고 물을표 뒤에는 참일때 실행되는 명령과 뒤에는 거짓일때 실행 되는 명령을 넣으면 된다.


삼항 연산자는 간단한 식일 때 사용 하도록 하자.

'JavaScript' 카테고리의 다른 글

JavaScript - 함수  (0) 2013.01.30
javaScript 배열 선언..!  (0) 2012.05.23
JavaScript의 비교 연산자와 일치 연산자..!  (0) 2012.05.22
Ajax 한글 파라미터..!  (0) 2012.01.30
JavaScript Parameter Encoding..!  (0) 2011.12.20
Posted by Z700zZz