반응형
JavaScript 랜덤 값 생성 방법

JavaScript 랜덤 값 생성 방법

JavaScript에서 랜덤 값을 생성하는 다양한 방법을 정리했습니다.

1. 0 이상 1 미만의 랜덤 값

let randomValue = Math.random();
console.log(randomValue); // 0 이상 1 미만의 실수

2. 정수 범위 내 랜덤 값

let randomInt = Math.floor(Math.random() * 11);
console.log(randomInt); // 0 이상 10 이하의 정수

3. 특정 범위 내 랜덤 값 (min ~ max)

function getRandomInt(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

console.log(getRandomInt(5, 15)); // 5 이상 15 이하의 정수

4. 배열에서 랜덤한 요소 선택

let items = ["사과", "바나나", "체리", "포도"];
let randomItem = items[Math.floor(Math.random() * items.length)];
console.log(randomItem); // 배열 요소 중 하나 랜덤 선택

5. 랜덤한 Boolean 값

let randomBool = Math.random() < 0.5; // true 또는 false
console.log(randomBool);

6. 랜덤한 색상 코드 (Hex)

function getRandomColor() {
    return '#' + Math.floor(Math.random() * 16777215).toString(16).padStart(6, '0');
}

console.log(getRandomColor()); // 예: #a3e12f

이제 JavaScript에서 다양한 랜덤 값을 생성하는 방법을 쉽게 활용할 수 있습니다!

728x90
반응형
화면을 터치하면
바로 게임을 시작할 수 있어요.

Tap the screen to start the game right away.
반응형
JavaScript 진동 처리

JavaScript에서 진동 처리하기

JavaScript에서 진동을 처리하려면 Vibration API를 사용할 수 있습니다. 이 API는 navigator.vibrate() 메서드를 제공하며, 진동 기능이 있는 디바이스(일반적으로 모바일)에서 작동합니다.

✅ 기본적인 진동 예제

다음 코드를 실행하면 500ms 동안 진동이 발생합니다.

navigator.vibrate(500);

✅ 진동 패턴 설정

배열을 사용하여 진동 패턴을 만들 수 있습니다.

navigator.vibrate([300, 100, 500]);

✅ 진동 중지

다음 코드를 실행하면 현재 실행 중인 진동을 멈출 수 있습니다.

navigator.vibrate(0);

✅ 버튼을 눌렀을 때 진동시키기

HTML 버튼을 추가하여 클릭하면 진동이 실행되도록 설정할 수 있습니다.

<button onclick="navigator.vibrate(200)">진동하기</button>

✅ 지원 여부 확인

브라우저가 진동 기능을 지원하는지 확인하는 코드입니다.

if ("vibrate" in navigator) {
    console.log("이 디바이스는 진동을 지원합니다!");
} else {
    console.log("진동 기능을 지원하지 않습니다.");
}

🎯 주의할 점

  • 데스크톱 브라우저에서는 대부분 작동하지 않음 - Vibration API는 모바일 환경에서만 작동하는 경우가 많습니다.
  • 일부 브라우저에서는 사용자 입력 이벤트 필요 - Chrome에서는 버튼 클릭 같은 이벤트가 있어야 진동이 동작합니다.
  • iOS 제한 - Safari(iOS)에서는 기본적으로 지원하지 않습니다.

이제 모바일 웹에서 진동을 활용해 UX를 개선할 수 있습니다! 🚀

728x90
반응형
화면을 터치하면
바로 게임을 시작할 수 있어요.

Tap the screen to start the game right away.
반응형

 

JavaScript의 eval 함수란?

eval 함수는 문자열로 된 JavaScript 코드를 실행할 수 있는 함수입니다.

eval 함수의 사용법

간단한 예제:

let result = eval("2 + 2");
console.log(result); // 4
        

eval을 사용하면 동적으로 코드를 실행할 수 있습니다.

보안 문제

eval의 사용은 보안상 위험할 수 있습니다. 사용자 입력을 직접 실행하면 악성 코드가 실행될 수 있습니다.

let userInput = "alert('해킹!');";
eval(userInput); // 잠재적으로 위험한 코드
        

따라서 가능한 경우 eval의 사용을 피해야 합니다.

eval을 대체할 수 있는 방법

  • JSON.parse() - JSON 데이터를 안전하게 처리
  • Function 생성자 - 일부 경우 대체 가능
  • 동적 객체 속성 접근 - eval 없이 객체에 접근

예제:

let jsonString = '{"name": "Alice"}';
let data = JSON.parse(jsonString);
console.log(data.name); // Alice
        

결론

eval은 강력하지만 신중하게 사용해야 합니다. 보안과 성능을 고려하여 대안을 선택하는 것이 좋습니다.

728x90
반응형
화면을 터치하면
바로 게임을 시작할 수 있어요.

Tap the screen to start the game right away.
반응형

1. XMLHttpRequest를 사용한 방법

// GET 요청
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://example.com/api/data', true);
xhr.onreadystatechange = function() {
  if (xhr.readyState === 4 && xhr.status === 200) {
    var response = JSON.parse(xhr.responseText);
    console.log(response);
  }
};
xhr.send();

// POST 요청
var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://example.com/api/data', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = function() {
  if (xhr.readyState === 4 && xhr.status === 200) {
    var response = JSON.parse(xhr.responseText);
    console.log(response);
  }
};
var data = JSON.stringify({
  key1: 'value1',
  key2: 'value2'
});
xhr.send(data);

2. Fetch API를 사용한 방법

// GET 요청
fetch('https://example.com/api/data')
.then(response => response.json())
.then(data => {
  console.log(data);
})
.catch(error => {
  console.error('Error:', error);
});

// POST 요청
fetch('https://example.com/api/data', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    key1: 'value1',
    key2: 'value2',
  }),
})
.then(response => response.json())
.then(data => {
  console.log(data);
})
.catch(error => {
  console.error('Error:', error);
});

3. Axios 라이브러리를 사용한 방법

// GET 요청
axios.get('https://example.com/api/data')
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error('Error:', error);
});

// POST 요청
axios.post('https://example.com/api/data', {
  key1: 'value1',
  key2: 'value2',
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error('Error:', error);
});

 


4. $.ajax 라이브러리를 사용한 방법

// GET 요청
$.ajax({
  url: 'https://example.com/api/data',
  method: 'GET',
  dataType: 'json',
  success: function(data) {
    console.log(data);
  },
  error: function(xhr, status, error) {
    console.error('Error:', error);
  }
});

// POST 요청
$.ajax({
  url: 'https://example.com/api/data',
  method: 'POST',
  dataType: 'json',
  contentType: 'application/json',
  data: JSON.stringify({
    key1: 'value1',
    key2: 'value2'
  }),
  success: function(data) {
    console.log(data);
  },
  error: function(xhr, status, error) {
    console.error('Error:', error);
  }
});

 

이 세 가지 방법 모두 널리 사용되며, 각각의 장단점이 있습니다.

 

XMLHttpRequest는 오래된 방법이지만 모든 브라우저에서 지원되고 있습니다.

 

Fetch API는 비교적 최근에 나왔으며 간결하고 강력한 기능을 제공합니다.

 

Axios는 HTTP 클라이언트 라이브러리로서 코드를 간결하게 작성할 수 있고 다양한 환경에서 사용할 수 있습니다.

 

ajax를 사용한 방식이 있습니다.

 

이를 통해 다양한 상황에 맞게 선택하여 사용할 수 있습니다.

728x90
반응형
화면을 터치하면
바로 게임을 시작할 수 있어요.

Tap the screen to start the game right away.
반응형

 

var type = navigator.appName;
var lang;

if (type == 'Netscape') {
    lang = navigator.language;
} else {
    lang = navigator.userLanguage;
}

lang = lang.substr(0, 2);

 

// 한국 : ko

// 미국 : en

 

한글 영문 ISO 3자리
아부카시안 Abkhazian ab abk
아프르어 Afar aa aar
아프리칸스어 Afrikaans af afr
아칸어 Akan ak aka
알바니아어 Albanian sq sqi
암하라어 Amharic am amh
아랍어 Arabic ar ara
아라곤어 Aragonese an arg
아르메니아어 Armenian hy hye
아삼어 Assamese as asm
아바릭어 Avaric av ava
아베스탄어 Avestan ae ave
아이마라어 Aymara ay aym
아제르바이잔어 Azerbaijani az aze
밤바라어 Bambara bm bam
바슈키르어 Bashkir ba bak
바스크어 Basque eu eus
벨라루스어 Belarusian be bel
벵골어 Bengali (Bangla) bn ben
비하리어 Bihari bh bih
비슬라마어 Bislama bi bis
보스니아어 Bosnian bs bos
브르타뉴어 Breton br bre
불가리아어 Bulgarian bg bul
버마어 Burmese my mya
카탈로니아어 Catalan ca cat
차모로어 Chamorro ch cha
체첸어 Chechen ce che
치체와어 Chichewa, Chewa, Nyanja ny nya
중국어 Chinese (중국어) zh zho
중국어 간체 Chinese (Simplified) zh-Hans zho
중국어 번체 Chinese (Traditional) zh-Hant zho
추바시어 Chuvash cv chv
코니시어 Cornish kw cor
코르시카어 Corsican co cos
크리어 Cree cr cre
크로아티아어 Croatian hr hrv
체코어 Czech cs ces
덴마크어 Danish da dan
디베히어 Divehi, Dhivehi, Maldivian dv div
네덜란드어 Dutch nl nld
존카어 Dzongkha dz dzo
영어 English (영어) en eng
에스페란토어 Esperanto eo epo
에스토니아어 Estonian et est
에워어 Ewe ee ewe
페로어 Faroese fo fao
피지어 Fijian fj fij
핀란드어 Finnish fi fin
프랑스어 French (프랑스어) fr fra
풀라어 Fula, Fulah, Pulaar, Pular ff ful
갈리시아어 Galician gl glg
스코틀랜드 게일어 Gaelic (Scottish) gd gla
맨섬어 Gaelic (Manx) gv glv
조지아어 Georgian ka kat
독일어 German (독일어) de deu
그리스어 Greek el ell
그린란드어 Greenlandic kl kal
과라니어 Guarani gn grn
구자라트어 Gujarati gu guj
아이티어 Haitian Creole ht hat
하우사어 Hausa ha hau
히브리어 Hebrew he heb
헤레로어 Herero hz her
힌디어 Hindi hi hin
히리 모투어 Hiri Motu ho hmo
헝가리어 Hungarian hu hun
아이슬란드어 Icelandic is isl
이도어 Ido io ido
이그보어 Igbo ig ibo
인도네시아어 Indonesian id, in ind
인터링구아어 Interlingua ia ina
인터링구에어 Interlingue ie ile
이누크티투트어 Inuktitut iu iku
이누피약어 Inupiak ik ipk
아일랜드어 Irish ga gle
이탈리아어 Italian (이탈리아어) it ita
일본어 Japanese (일본어) ja jpn
자바어 Javanese jv jav
카라칼리수트, 그린란드어 Kalaallisut, Greenlandic kl kal
칸나다어 Kannada kn kan
카누리어 Kanuri kr kau
카슈미리어 Kashmiri ks kas
카자흐어 Kazakh kk kaz
캄보디아어 Khmer km khm
기쿠유어 Kikuyu ki kik
륀다어 Kinyarwanda (Rwanda) rw kin
키룬디어 Kirundi rn run
키르기스어 Kyrgyz ky kir
코미어 Komi kv kom
콩고어 Kongo kg kon
한국어 Korean (한국어) ko kor
쿠르드어 Kurdish ku kur
콰냐마어 Kwanyama kj kua
라오어 Lao lo lao
라틴어 Latin la lat
라트비아어 Latvian (Lettish) lv lav
리프후카탕가어 Luga-Katanga lu lug
루간다어 Luganda, Ganda lg lug
룩셈부르크어 Luxembourgish lb ltz
맨섬어 Manx gv glv
마케도니아어 Macedonian mk mkd
마다가스카르어 Malagasy mg mlg
말레이어 Malay ms msa
말라얄람어 Malayalam ml mal
몰타어 Maltese mt mlt
마오리어 Maori mi mri
마라티어 Marathi mr mar
마샬어 Marshallese mh mah
모르다비아어 Moldavian mo mol
몽골어 Mongolian mn mon
나우루어 Nauru na nau
나바호어 Navajo nv nav
농가어 Ndonga ng ndo
북부 네데벨레어 Northern Ndebele nd nde
네팔어 Nepali ne nep
노르웨이어 Norwegian no nor
노르웨이어 보크몰 Norwegian bokmål nb nob
노르웨이어 니놀스크 Norwegian nynorsk nn nno
누오수어 Nuosu ii iii
오크어 Occitan oc oci
오지브웨어 Ojibwe oj oji
구슬라브어, 구슬라브어, 구슬라브어 Old Church Slavonic, Old Bulgarian cu chu
오리야어 Oriya or ori
오로모어 Oromo (Afaan Oromo) om orm
오세트어 Ossetian os oss
팔리어 Pāli pi pli
파슈토어 Pashto, Pushto ps pus
페르시아어 Persian (Farsi) fa fas
폴란드어 Polish pl pol
포르투갈어 Portuguese pt por
펀잡어 Punjabi (Eastern) pa pan
케추아어 Quechua qu que
로만슈어 Romansh rm roh
루마니아어 Romanian ro ron
러시아어 Russian (러시아어) ru rus
사미어 Sami se sme
사모아어 Samoan sm smo
상고어 Sango sg sag
산스크리트어 Sanskrit sa san
세르비아어 Serbian sr srp
세르보크로아티아어 Serbo-Croatian sh hrv
세소토어 Sesotho st sot
세츠완어 Setswana tn tsn
쇼나어 Shona sn sna
쓰촨 요어 Sichuan Yi ii iii
신디어 Sindhi sd snd
싱할라어 Sinhalese si sin
슬로바키아어 Slovak sk slk
슬로베니아어 Slovenian sl slv
소말리어 Somali so som
남부 네데벨레어 Southern Ndebele nr nbl
스페인어 Spanish (스페인어) es spa
수단어 Sundanese su sun
스와힐리어 Swahili (Kiswahili) sw swa
스웨덴어 Swedish sv swe
타갈로그어 Tagalog tl tgl
타히티어 Tahitian ty tah
타지크어 Tajik tg tgk
타밀어 Tamil ta tam
타타르어 Tatar tt tat
텔루구어 Telugu te tel
태국어 Thai th tha
티베트어 Tibetan bo bod
티그리냐어 Tigrinya ti tir
통가어 Tonga to ton
총가어 Tsonga ts tso
터키어 Turkish tr tur
투르크멘어 Turkmen tk tuk

 

728x90
반응형
화면을 터치하면
바로 게임을 시작할 수 있어요.

Tap the screen to start the game right away.
반응형

안녕하세요 넌소중햇입니다.

간단하게 버튼 만들어서 글자를 복사하는 기능에 대해 남겨봅니다.

나중에 티스토리에서 사용할일이 있을듯 하여

기능을 남겨봅니다.

<script>
	function copyToClipboard(copyText){
		var ti = document.createElement("input");
		ti.setAttribute("value", copyText);
		document.body.appendChild(ti);
		ti.select();
		document.execCommand("copy");
		document.body.removeChild(ti);
		alert("\""+copyText+"\" 복사가 되었습니다.");
    }
</script>
<p><button onclick="copyToClipboard('복사할 텍스트 넣기')">복사하기</button></p>

 

 

728x90
반응형
화면을 터치하면
바로 게임을 시작할 수 있어요.

Tap the screen to start the game right away.
1

+ Recent posts