컨텐츠로 건너뛰기

스크립트 함수 목록

스크립트 함수

Canvas 스크립트

모든 함수는 괄호와 함께 사용되어야 합니다.

유의사항: eXT, nXT, eXT2 제품을 통해 USB 저장장치를 사용할 때, USB 저장장치는 exFAT 또는 FAT32 형식으로 포맷되어야 합니다. 유의사항: Storage.Local을 저장 위치로 사용할 때, Xpanel은 경로 '$DATA_PARTITION/home/user'를 참조하고, 시뮬레이터는 경로 'C:\Users<user>'를 참조합니다.

경보

함수 매개변수

반환 값
설명

예제
alarm.createAllCsv(Storage type) Storage type:
1: Storage.Local
2: Storage.Usb
3: Storage.SdCard
4: Storage.Ftp

Returns:
반환 값 없음
지정된 Storage type에 모든 메시지를 CSV 파일로 저장합니다.
alarm.createAllCsv(Storage.Usb);
alarm.createAllCsv(1);
alarm.createCsv(String label, Storage type) String label:
경보 설정에서 사용되는 레이블.

Storage type:
1: Storage.Local
2: Storage.Usb
3: Storage.SdCard
4: Storage.Ftp

Returns:
반환 값 없음
지정된 Storage typeString label과 연관된 모든 알람 메시지를 CSV 파일로 저장합니다.
String label은 경보 설정에서 사용되는 레이블을 의미하며, 사용자가 직접 생성하거나 미리 설정된 레이블을 사용할 수 있습니다.
alarm.createCsv("A", Storage.Usb);
alarm.createCsv("A", 1);

데이터 수집

함수 매개변수

반환 값
설명

예제
datalog.addRow(String modelName) String modelName:
데이터 수집 모델의 이름

Returns:
반환 값 없음
지정된 데이터 수집 모델에 한 개의 행을 추가합니다.
datalog.addRow("LoggingModel");
datalog.createCsv(String modelName, Storage type) String modelName:
데이터 수집 모델의 이름

Storage type:
1: Storage.Local
2: Storage.Usb
3: Storage.SdCard
4: Storage.Ftp

Returns:
반환 값 없음
지정된 Storage type에 데이터 수집 모델의 CSV 파일을 생성합니다.
datalog.createCsv("LoggingModel", Storage.Local);
datalog.createCsv("LoggingModel", 4);
datalog.
createCsvForRange(String modelName, Date start, Date end, Storage type)
String modelName:
데이터 수집 모델의 이름

Date start:
시작 날짜

Date end:
종료 날짜

Storage type:
1: Storage.Local
2: Storage.Usb
3: Storage.SdCard
4: Storage.Ftp

Returns:
반환 값 없음
지정된 Storage type에 정해진 기간 내의 데이터 수집 모델 CSV 파일을 생성합니다.
          datalog.createCsvForRange(
            "LoggingModel", 1, 31, Storage.Ftp);
        
          datalog.createCsvForRange(
            "LoggingModel", 1, 31, 1);
        
datalog.start(String modelName) String modelName:
데이터 수집 모델의 이름

Returns:
반환 값 없음
지정된 데이터 수집 모델의 기록을 시작합니다.
datalog.start("LoggingModel");
datalog.stop(String modelName) String modelName:
데이터 수집 모델의 이름

Returns:
반환 값 없음
지정된 데이터 수집 모델의 기록을 종료합니다.
datalog.stop("LoggingModel");

Driver

함수 매개변수

반환 값
설명

예제
driver.enable(String deviceName) String deviceName:
대상 장치의 이름

Returns:
반환 값 없음
지정된 장치를 활성화합니다.
driver.enable("PLC");
driver.disable(String deviceName) String deviceName:
대상 장치의 이름

Returns:
반환 값 없음
지정된 장치를 비활성화합니다.
driver.disable("PLC");

키보드

함수 매개변수

반환 값
설명

예제
keyboard.
launchKeyboard(String tagName)

keyboard.
launchKeyboard(String tagName, Object properties)
String tagName:
설정할 태그의 이름

Object properties:
선택 사항
키보드 스타일 속성 목록
  • header: 키보드 상단의 텍스트.
  • subheader: 키보드 상단 아래의 텍스트.
  • x: 키보드의 X 위치 설정.
  • y: 키보드의 Y 위치 설정.


Returns:
반환 값 없음
사용자 입력을 위한 팝업 키보드를 실행하여 태그의 값을 설정합니다.
keyboard.launchKeyboard("pass");
          keyboard.launchKeyboard("pass", {header: "Password", subheader: "Enter your password", x: 50, y: 50});
        
keyboard.
launchKeypad(String tagName)

keyboard.
launchKeypad(String tagName, Object properties)
String tagName:
설정할 태그의 이름

Object properties:
선택 사항
키패드 스타일 속성 목록
  • header: 키패드 상단의 텍스트.
  • subheader: 헤더 아래의 텍스트.
  • x: 키패드의 X 위치 설정.
  • y: 키패드의 Y 위치 설정.
  • format: 16진수 또는 10진수 입력 지정.
  • rawMin: 허용되는 최소값 설정.
  • rawMax: 허용되는 최대값 설정.
  • scaledMin: 최소 스케일 값 설정.
  • scaledMax: 최대 스케일 값 설정.


Returns:
반환 값 없음
사용자 입력을 위한 숫자 키패드를 실행하여 태그의 값을 설정합니다.
keyboard.launchKeypad("Number");
          keyboard.launchKeypad("Number", {header: "Header", subheader: "Subheader", x: 50, y: 50, format: "HH", rawMin: 5, rawMax: 20});
        
keyboard.
sendKeyEvent(KeyCode keyCode)
KeyCode keyCode:
키의 16진수 또는 10진수 값

Returns:
반환 값 없음
키코드에 대한 키 입력을 시뮬레이션합니다.
keyboard.sendKeyEvent(0x20);

알림

함수 매개변수

반환 값
설명

예제
notification.send(String msg)

notification.send(String msg, int dismissInterval)
String msg:
표시할 메시지

int dismissInterval
선택 사항
알림이 사라지기 전 시간 (밀리초 단위)

Returns:
부호 없는 long 정수 값
지정된 메시지를 화면에 팝업 알림으로 표시하고, 고유한 부호 없는 long 정수형 ID를 반환합니다.
dismissInterval 값이 0보다 작으면, 알림은 사용자가 수동으로 닫을 때까지 계속 표시됩니다.
tag.write("ID", notification.send("Hello World"));
// Save the unique ID of the notification
tag.write("ID", notification.send("Hello World", 3000));
// Save the unique ID of the notification

페이지

함수 매개변수

반환 값
설명

예제
page.close(String name) String name:
페이지 이름

Returns:
반환 값 없음
지정된 이름의 기본 페이지를 닫습니다.

page.close("Home");
page.closeIndex(int index) int index:
페이지 번호

Returns:
반환 값 없음
지정된 인덱스 번호의 기본 페이지를 닫습니다.
page.closeIndex(1);
page.closePopupIndex(int index) int index:
팝업 페이지 번호

Returns:
반환 값 없음
지정된 인덱스 번호의 팝업 페이지를 닫습니다.
page.closePopupIndex(3);
page.currentIndex(); Returns:
현재 열린 페이지의 인덱스 값 (int)
현재 열려 있는 페이지의 인덱스 값을 반환합니다.
tag.write("Page Num", page.currentIndex()); 
// "Page Num" 태그에 현재 열려 있는 페이지의 인덱스를 저장
page.currentName(); Returns:
현재 열려 있는 페이지의 이름 (문자열)
현재 열려 있는 페이지의 이름을 반환합니다.
tag.write("Open Page", page.currentName());
// "Open Page" 태그에 현재 열려 있는 페이지의 이름을 저장
page.isOpen(String name) String name:
페이지 이름

Returns:
Boolean 값
지정한 이름의 기본 페이지가 열려 있는지 여부를 true(1) 또는 false(0)로 반환합니다.
if(page.isOpen("Home")) {
tag.write("Pages/Base/Home", 1); 
// 홈 페이지가 열려 있으면 해당 태그 값을 true로 설정
}
page.isOpenIndex(int index) int index:
페이지 번호

Returns:
Boolean 값
지정한 인덱스 번호의 기본 페이지가 열려 있는지 여부를 true(1) 또는 false(0)로 반환합니다.
if(page.isOpenIndex(0)) {
tag.write("Pages/Base/Home", 1); 
// 홈 페이지가 열려 있으면 해당 태그 값을 true로 설정
}
page.isOpenPopupIndex(int index) int index:
페이지 번호

Returns:
Boolean 값
지정한 인덱스 번호의 팝업 페이지가 열려 있는지 여부를 true(1) 또는 false(0)로 반환합니다.
if(page.isOpenPopupIndex(3)) {
tag.write("Pages/Popup/Help", 1); 
// 도움말 팝업 페이지가 열려 있으면 해당 태그 값을 true로 설정
}
page.open(String name) String name:
페이지 이름

Returns:
반환 값 없음
지정된 이름의 기본 페이지를 엽니다.
page.open("Home");
page.openIndex(int index) int index:
페이지 번호

Returns:
반환 값 없음
지정된 인덱스 번호의 기본 페이지를 엽니다.
page.openIndex(1);
page.openPopupIndex(int index) int index:
팝업 페이지 번호

Returns:
반환 값 없음
지정된 인덱스 번호의 팝업 페이지를 엽니다.
page.openPopupIndex(3);
page.openPrevious(); Returns:
반환 값 없음
이전 기본 페이지를 엽니다.
page.openPrevious();

레시피

함수 매개변수

반환 값
설명

예제
recipe.
createRecord(String recipe, int id, String name, List<Value> values)
String recipe:
레시피 데이터베이스

int id:
레코드의 ID

String name:
레코드의 이름

List<Value> values:
레코드에 저장할 파라미터 값들의 목록

Returns:
반환 값 없음
주어진 매개변수로 레시피 데이터베이스에 새 레코드를 추가합니다.
recipe.createRecord
("RecipeName", tag.read("MaxRecordId") + 1, "Orange", ["#FFA500"]);
recipe.
deleteRecord(String recipe, int id)
String recipe:
레시피 데이터베이스

int id:
레코드의 ID

Returns:
반환 값 없음
기존 레시피 데이터베이스에서 레코드를 삭제합니다.
recipe.deleteRecord
("RecipeName", tag.read("Switch"));
recipe.
exportCsv(String recipe, Storage type, String path)
String recipe:
레시피 데이터베이스

Storage type:
1: Storage.Local
2: Storage.Usb
3: Storage.SdCard
4: Storage.Ftp

String path:
저장 위치를 기준으로 CSV 파일을 찾을 경로를 지정합니다.

Returns:
반환 값 없음
레시피 데이터를 CSV 파일로 지정된 경로에 저장합니다.
recipe.exportCsv
("RecipeName", Storage.SdCard, "RecipeScript.csv");
recipe.exportCsv
("RecipeName", 1, "RecipeScript.csv");
recipe.openConfig() Returns:
반환 값 없음
레시피 설정 창을 엽니다.
recipe.openConfig();
recipe.receiveRecord(String recipe, int id) String recipe:
대상 레시피 데이터베이스

int id:
레코드 ID

Returns:
반환 값 없음
원격 장치로부터 레시피 값을 가져와서 레시피 데이터베이스에 저장합니다.
recipe.receiveRecord("Mixtures", 0);
// "Mixtures" 레시피에서 레코드 0을 가져옴
recipe.sendRecord(String recipe, int id) String recipe:
대상 레시피 데이터베이스

int id:
레코드 ID

Returns:
반환 값 없음
레시피 데이터베이스에 있는 지정된 레코드 값을 원격 장치로 전송합니다.
recipe.sendRecord("Mixtures", 3);
// "Mixtures" 레시피에서 레코드 3을 전송
recipe.
getAllParameters(String recipe)
String recipe:
레시피 데이터베이스

Returns:
현재 태그 값들의 배열
장치의 현재 파라미터 값 배열을 반환합니다 (현재 태그 값들).
          var vals = 
recipe.getAllParameters("Mix"); 
// 현재 파라미터 값 모두 가져오기
tag.write("Mix/Display/1", vals[0]); 
// 배열의 첫 번째 요소를 태그 1에 기록
tag.write("Mix/Display/2", vals[1]); 
// 배열의 두 번째 요소를 태그 2에 기록
tag.write("Mix/Display/3", vals[2]); 
// 배열의 세 번째 요소를 태그 3에 기록
        
recipe.
getParameter(String recipe, int id, int index)
String recipe:
레시피 데이터베이스

int id:
레코드의 ID

int index:
레코드 내에서의 파라미터 인덱스

Returns:
주어진 파라미터 인덱스에 해당하는 레코드의 값
주어진 파라미터 인덱스에 해당하는 레코드의 값을 반환합니다.
이것은 recipe.getParameterByName() 스크립트와 유사합니다.
          var para = recipe.getParameter
("Mixtures", 1, 2); 
// 파라미터 값 가져오기
tag.write("Mix/Display/Parameter", para); 
// 파라미터 값을 태그에 기록
        
recipe.
getParameter
ByName(String recipe, int id, String name)
String recipe:
레시피 데이터베이스

int id:
레코드의 ID

String name:
레코드 파라미터의 이름

Returns:
주어진 파라미터 이름에 해당하는 레코드의 값
주어진 파라미터 이름에 해당하는 레코드의 값을 반환합니다.
이것은 recipe.getParameter() 스크립트와 유사합니다.
          var para = 
recipe.getParameterByName
("Mixtures", 0, "Ingredient 2"); 
// 파라미터 값 가져오기
tag.write("Mix/Display/Parameter", para); 
// 파라미터 값을 태그에 기록
        
recipe.
getRecordName(String recipe, int id)
String recipe:
레시피 데이터베이스

int id:
레코드의 ID

Returns:
레코드 파라미터의 이름
지정된 레시피 데이터베이스에서 레코드의 이름을 반환합니다.
          var name = 
recipe.getRecordName
("Mixtures", 2); 
// 레코드 이름 가져오기
tag.write("Mix/Display/Name", name); 
// 레코드 이름을 태그에 기록
        
recipe.
getRecordValues(String recipe, int id)
String recipe:
레시피 데이터베이스

int id:
레코드의 ID

Returns:
파라미터 값들의 배열
지정된 레코드의 값을 배열로 반환합니다.
          var record_values = 
recipe.getRecordValues("Mixtures", 1); 
// 레코드 값 가져오기
tag.write("Mix/Values/Value 1", record_values[0]); 
// 레코드 값을 태그에 기록
tag.write("Mix/Values/Value 2", record_values[1]); 
// 레코드 값을 태그에 기록
tag.write("Mix/Values/Value 3", record_values[2]); 
// 레코드 값을 태그에 기록
        
recipe.
importCsv(String recipe, Storage type, String path)
String recipe:
레시피 데이터베이스

Storage type:
1: Storage.Local
2: Storage.Usb
3: Storage.SdCard
4: Storage.Ftp

String path:
CSV 파일이 위치한 경로, 저장 위치에 대해 상대 경로로 지정

Returns:
반환 값 없음
지정된 경로의 CSV 파일 데이터를 가져와 레시피 데이터를 대체합니다.
recipe.importCsv
("RecipeName", Storage.Usb, "RecipeScript.csv");
recipe.importCsv
("RecipeName", 1, "RecipeScript.csv");
recipe.
setParameter(String recipe, int id, int index, Value value)
String recipe:
레시피 데이터베이스

int id:
레코드 ID

int index:
레코드 내 파라미터 인덱스

Value value:
파라미터에 입력할 값

Returns:
반환 값 없음
레코드의 파라미터 값을 지정된 인덱스로 설정합니다.
이것은 recipe.setParameterByName() 스크립트와 유사합니다.
recipe.setParameter
("Mixtures", tag.read("Counter"), 0, "#FFA500");
// 레코드 ID "Counter"의 혼합물 색상을 변경합니다.
recipe.
setParameterByName(String recipe, int id, String name, Value value)
String recipe:
레시피 데이터베이스

int id:
레코드의 ID

String name:
레코드 내 파라미터 이름

Value value:
파라미터에 입력할 값

Returns:
반환 값 없음
지정된 파라미터 이름을 기준으로 레코드의 파라미터 값을 설정합니다.
이것은 recipe.setParameter() 스크립트와 유사합니다.
recipe.setParameterByName
("Mixtures", tag.read("Counter"), "Color", "#FFA500");
// 레코드 ID "Counter"의 혼합물 색상을 변경합니다.
recipe.
setRecord(String recipe, int id, List<Value> values)
String recipe:
레시피 데이터베이스

int id:
레코드의 ID

List<Value> values:
레코드에 저장할 파라미터 값들의 목록

Returns:
반환 값 없음
레코드의 값을 업데이트합니다.
recipe.setRecord("Mixtures", tag.read("Counter"), ["#FFA500"]);
recipe.
setRecordId(String recipe, int oldId, int newId)
String recipe:
레시피 데이터베이스

int oldId:
업데이트할 레코드의 ID

int newId:
레코드를 업데이트할 새로운 ID

Returns:
반환 값 없음
지정된 레시피 데이터베이스에서 레코드의 ID를 업데이트합니다.
recipe.setRecordId("RecipeName", tag.read("Switch"), tag.read("Switch") + 1); // Change the value of record "Switch" to "Switch + 1" (int value)
recipe.
setRecordName(String recipe, int id, String name)
String recipe:
레시피 데이터베이스

int id:
레코드의 ID

String name:
레코드의 이름을 변경할 새 이름

Returns:
반환 값 없음
지정된 레시피 데이터베이스에서 레코드의 이름을 변경합니다.
recipe.setRecordId("RecipeName", tag.read("Switch"), "Mixtures");

스케줄

함수 매개변수

반환 값
설명

예제
schedule.isEnabled(String title) String title:
스케줄의 이름

Returns:
Boolean 값
스케줄이 활성화되어 있는지 여부를 Boolean 값(true(1) 또는 false(0))으로 반환합니다.
if(schedule.isEnabled("Check")) 
        { tag.write("Lights/Display", "#00FF00"); // 스케줄이 활성화되어 있으면 불빛을 초록색으로 변경
        }
schedule.setEnabled(String title, boolean enable) String title:
스케줄 이름

boolean enable:
0: false
1: true

Returns:
반환 값 없음
지정된 스케줄의 값이 1이면 활성화되고, 0이면 비활성화됩니다.
schedule.setEnabled("Check", 1); // "Check" 스케줄을 활성화 상태로 설정

시스템

함수 매개변수

반환 값
설명

예제
system.audio.playFile(Storage type, String relativePath, boolean async) Storage type:
1: Storage.Local
2: Storage.Usb
3: Storage.SdCard
4: Storage.Ftp
5: Storage.Project

String relativePath:
파일 경로

boolean async:
선택 사항
비동기적으로 실행
0: false
1: true

Returns:
반환 값 없음
오디오 파일을 재생합니다.
boolean 비동기 매개변수가 없으면 기본값은 true입니다.
2024년 11월 이전에 제조된 CM-eXT07 및 CM-nXT07 장치는 이 기능을 지원하지 않습니다.
system.audio.playFile(
          Storage.Project, "Folder/buzz.mp4", 0);
system.audio.playFile(
          5, "Folder/buzz.mp4");
system.audio.stopFile(Storage type, String relativePath) Storage type:
1: Storage.Local
2: Storage.Usb
3: Storage.SdCard
4: Storage.Ftp
5: Storage.Project

String relativePath:
파일 경로

Returns:
반환 값 없음
모든 오디오 파일을 중지합니다.
2024년 11월 이전에 제조된 CM-eXT07 및 CM-nXT07 장치는 이 기능을 지원하지 않습니다.
system.audio.stopFile(
          Storage.Project, "Folder/buzz.mp4");
system.audio.stopFile(
          5, "Folder/buzz.mp4");
system.audit.log(String description) String description:
감사 로그에 추가할 텍스트

Returns:
반환 값 없음
입력한 설명을 감사 로그에 기록합니다.
system.audit.log("Button pressed");
system.currentUsername() Returns:
현재 로그인한 사용자의 이름
현재 로그인한 사용자의 이름을 반환합니다.
로그인된 사용자가 없으면 빈 문자열이 반환됩니다.
var user = system.currentUsername(); // Get the current username
        tag.write("Username", user); // 사용자 이름 쓰기
system.
display.brightness()
Returns:
double 값
Xpanel의 밝기 수준을 나타내는 0과 1 사이의 double 값을 반환합니다
이 스크립트는 시뮬레이터에서는 작동하지 않습니다.
if(system.display.brightness() < 1) {
  // 작업 수행
}
system.
display.dimDelay()
Returns:
int value
Xpanel의 디밍 지연 시간을 분 단위로 나타내는 int 값을 반환합니다.
이 스크립트는 시뮬레이터에서는 작동하지 않습니다.
if(system.display.dimDelay() > 5) {
  // 작업 수행
}
system.
display.dimFactor()
Returns:
float 값
Xpanel의 디밍 정도를 나타내는 float 값을 반환합니다.
이 스크립트는 시뮬레이터에서는 작동하지 않습니다.
if(system.display.dimFactor() < 0.8) {
  // Do something
}
system.
display.enableBacklight(boolean enable)
boolean enable:
Xpanel 백라이트를 활성화할지 여부
0: false
1: true

Returns:
반환 값 없음
Xpanel의 백라이트를 켭니다(1) 또는 끕니다(0).
이 스크립트는 시뮬레이터에서는 작동하지 않습니다.
경고: 자동 밝기 조정 또는 자동 절전 기능과 함께 이 스크립트를 사용하지 마십시오. 예기치 않은 동작이 발생할 수 있습니다.
system.display.
        enableBacklight(0);
system.
display.isDimmerEnabled()
Returns:
Boolean 값
디밍 설정이 활성화되어 있는지 여부를 true(1) 또는 false(0)로 반환합니다.
이 스크립트는 시뮬레이터에서는 작동하지 않습니다.
if(!system.display.
        isDimmerEnabled()) {
  // 작업 수행
}
system.
display.setBrightness(float brightness)
float brightness:
Xpanel의 밝기 정도

Returns:
반환 값 없음
Xpanel의 밝기를 지정된 값으로 설정합니다.
참고: float brightness 값은 0과 1 사이여야 하며, 0이라도 백라이트가 완전히 꺼지지는 않습니다.
이 스크립트는 시뮬레이터에서는 작동하지 않습니다.
이 스크립트는 시뮬레이터에서는 작동하지 않습니다.
system.display.
        setBrightness(0.74);
system.
display.setDimDelay(int minutes)
int minutes:
Xpanel이 어두워지기까지의 시간

Returns:
반환 값 없음
Xpanel이 디밍되기까지의 시간을 분 단위로 설정합니다.
참고: int minutes 가 음수이면 디밍 되는 시간은 0으로 설정됩니다.
이 스크립트는 시뮬레이터에서는 작동하지 않습니다.
system.display.
        setDimDelay(3);
system.
display.setDimEnabled(boolean enabled)
boolean enable:
0: 비활성화
1: 활성화

Returns:
반환 값 없음
Xpanel의 디밍 기능을 켜거나(1) 끕니다(0).
이 스크립트는 시뮬레이터에서는 작동하지 않습니다.
system.display.
        setDimEnabled(0);
system.
display.setDimFactor(float dimFactor)
float dimFactor:
Xpanel의 디밍 정도

Returns:
반환 값 없음
panel의 밝기를 제어하기 위한 디밍 강도를 설정합니다.
이 스크립트는 시뮬레이터에서는 작동하지 않습니다.
system.display.
        setDimFactor(0.8);
system.email.send(Object properties) Object properties:
이메일 내용
  • to: 수신자 이메일 주소
  • cc: 참조 이메일 주소
  • subject: 이메일 제목
  • body: 이메일 본문 내용


Returns:
반환 값 없음
SMTP 설정을 사용하여 이메일을 보냅니다.
var properties = { 
          to: "test@gmail.com", 
          cc: "test2@gmail.com", 
          subject: "스크립트 이메일 보내기", 
          body: "이 이메일은 system.email.send 함수의 작동 방식 예시입니다." 
          };
          system.email.send(properties);
system.execute(String program, Array arguments) String program:
실행할 프로그램

Array arguments:
프로그램에 대한 인수 배열

Returns:
반환 값 없음
String program의 서브 프로세스를 Array arguments와 함께 비차단 비동기 호출을 생성합니다.
system.execute("bash", ["-c", "echo hello > out.txt"]); 
// "hello"를 out.txt에 작성
system.execute("mkdir", ["newDirectory"]);
// "newDirectory"라는 새로운 디렉토리 생성
system.exit() Returns:
반환 값 없음
현재 프로젝트와 런타임 애플리케이션을 종료합니다.
system.exit();
system.file.exists(Storage type, String path) Storage type:
1: Storage.Local
2: Storage.Usb
3: Storage.SdCard
4: Storage.Ftp

String path:
파일 경로

Returns:
Boolean 값
파일이 존재하면 true (1) 또는 false (0)을 반환합니다.
if(system.file.exists
        (Storage.Local, "Recipes.csv")) {
          recipe.exportCsv("Mixtures", Storage.Usb, "Recipes.csv"); // 파일이 존재하면 내보내기
        }
if(system.file.exists
        (1, "Recipes.csv")) {
          recipe.exportCsv("Mixtures", 2, "Recipes.csv"); // 파일이 존재하면 내보내기
        }
system.file.isDirectory(Storage type, String path) Storage type:
1: Storage.Local
2: Storage.Usb
3: Storage.SdCard
4: Storage.Ftp

String path:
디렉토리 경로

Returns:
Boolean 값
파일 경로가 디렉토리인지 여부에 대해 Boolean 값(true(1) 또는 false(0))을 반환합니다.
if(system.file.isDirectory
        (Storage.Local, "Recipes") &&
        system.file.exists
        (Storage.Local, "Recipes.csv")) {
          recipe.exportCsv("Mixtures", Storage.Usb, "Recipes.csv"); // 유효한 디렉토리에 파일이 존재하면 내보내기
        }
system.file.openDialog(Storage type, String path) Storage type:
1: Storage.Local
2: Storage.Usb
3: Storage.SdCard
4: Storage.Ftp

String path:
디렉토리 경로

Returns:
선택된 파일의 문자열 값
저장소 위치에서 선택된 파일의 문자열 값을 반환합니다.
var file = system.file.openDialog(1, "Documents");
tag.write("File", file); // 선택된 파일 이름 표시
system.ftp.download(Object config, Storage type, String sourcePath, String targetPath) Object config:
FTP 서버 정보
  • server: FTP 서버 주소
  • port: FTP 서버 포트
  • username (Optional): FTP 서버 사용자 이름
  • password (Optional): FTP 서버 사용자 비밀번호


Storage type:
1: Storage.Local
2: Storage.Usb
3: Storage.SdCard
4: Storage.Ftp

String sourcePath:
원본 파일 경로

String targetPath:
대상 파일 경로

Returns:
Boolean 값
FTP 서버에서 Object config를 다운로드하는 데 성공하면 boolean 값(true (1) 또는 false (0))을 반환합니다.
이 스크립트는 시뮬레이터에서 작동하지 않습니다.
let ftpConfig = {
    "server": "192.168.1.100",
    "port": 21,
    "username": "ftp",
    "password": "ftppass"
};
system.ftp.download(ftpConfig, Storage.Local, "/location", "/downloads/location");
system.file.openPdf(Storage type, String path) Storage type:
1: Storage.Local
2: Storage.Usb
3: Storage.SdCard
4: Storage.Ftp
5: Storage.Project

String path:
PDF 파일 경로

Returns:
반환 값 없음
별도의 PDF 뷰어로 PDF를 엽니다.
이 스크립트는 시뮬레이터에서 작동하지 않습니다.
system.file.openPdf
        (Storage.Project, "Folder/help.pdf");
system.file.openPdf(5, "Folder/help.pdf");
system.file.saveDialog(Storage type, String path) Storage type:
1: Storage.Local
2: Storage.Usb
3: Storage.SdCard
4: Storage.Ftp

String path:
파일 경로

Returns:
선택된 파일의 문자열 값
지정된 경로에 파일을 저장하는 다이얼로그 창을 엽니다.
var file = system.file.openDialog(1, "Documents");
tag.write("File", file); // 저장된 파일 이름을 표시
system.ftp.startServer() Returns:
반환 값 없음
로컬 FTP 서버를 시작합니다.
이 스크립트는 시뮬레이터에서 작동하지 않습니다.
system.ftp.startServer();
system.ftp.stopServer() Returns:
반환 값 없음
로컬 FTP 서버를 중지합니다.
이 스크립트는 시뮬레이터에서 작동하지 않습니다.
system.ftp.stopServer();
system.ftp.upload(Object config, Storage type, String sourcePath, String targetPath) Object config:
FTP 서버 정보
  • server: FTP 서버 주소
  • port: FTP 서버 포트
  • username (Optional): FTP 서버 사용자 이름
  • password (Optional): FTP 서버 비밀번호


Storage type:
1: Storage.Local
2: Storage.Usb
3: Storage.SdCard
4: Storage.Ftp

String sourcePath:
원본 파일 경로

String targetPath:
대상 파일 경로

Returns:
Boolean 값
FTP 서버에 Object config를 업로드하는 데 성공하면 boolean 값(true (1) 또는 false (0))을 반환합니다.
이 스크립트는 시뮬레이터에서 작동하지 않습니다.
let ftpConfig = {
    "server": "192.168.1.100",
    "port": 21,
    "username": "ftp",
    "password": "ftppass"
};
system.ftp.upload(ftpConfig, Storage.Local, "/location", "/downloads/location");
system.hasPermission(String permission) String permission:
확인할 권한

Returns:
Boolean 값
현재 로그인한 사용자가 지정된 권한을 가지고 있는지 여부를 나타내는 Boolean 값(true(1) 또는 false(0))을 반환합니다.
if(system.hasPermission("log")) {
  datalog.start("Changes"); 
  // 사용자가 권한을 가지고 있으면 데이터 수집 시작
}
system.importScript(String scriptName) String scriptName:
실행할 스크립트

Returns:
반환 값 없음
지정된 스크립트를 현재 프로젝트에서 현재 스레드에서 실행합니다.
system.importScript("Script");
system.login(String username, String password) String username:
사용자 이름

String password:
선택 사항 사용자 비밀번호

Returns:
Boolean 값
사용자가 신원 및 접근 관리 기능에 성공적으로 로그인할 수 있는지 여부를 나타내는 Boolean 값(true(1) 또는 false(0))을 반환합니다.
if (system.login("Admin", "admin_Pass")) {
tag.write("Admin", 1); 
// 관리자 로그인 설정
tag.write("User", 0); 
// 사용자 로그아웃 설정
}

else if (system.login("User")) { tag.write("User", 1); // 사용자 로그인 설정 tag.write("Admin", 0); // 관리자 로그아웃 설정 }
system.logout() Returns:
반환 값 없음
현재 사용자를 신원 및 접근 관리 기능에서 로그아웃시킵니다.
system.logout();
system.
openAuthWindow(Object properties)
Object properties:
선택 사항
사용자 인증 조건
  • Username: 인증할 사용자
  • Permissions: 리스트된 권한을 가진 사용자만 로그인 가능.


Returns:
Boolean 값
사용자 인증을 위한 다이얼 로그 창을 열고, 사용자가 로그인에 성공하면 Boolean 값(true(1) 또는 false(0))을 반환합니다.
사용자가 지정되지 않으면, 사용자 이름과 비밀번호를 입력한 누구나 인증됩니다.
사용자가 리스트된 권한을 가지고 있지 않으면 로그인할 수 없습니다.
var properties = {username: "Admin", permissions: "Bypass"};
if(system.openAuthWindow
(properties)) {
tag.write("Bypass", 1); 
// bypass를 true로 설정
}
system.openConfig() Returns:
반환 값 없음
런타임 설정 메뉴를 엽니다.
system.openConfig();
system.
openFrameMonitor()
Returns:
반환 값 없음
프레임 모니터 창을 엽니다.
이 스크립트는 시뮬레이터에서 작동하지 않습니다
system.openFrameMonitor();
system.
openLoginWindow(Object properties)
Object properties: 선택 사항
사용 가능한 사용자 또는 사용자 유형을 표시하는 조건
  • listUsers: 모든 사용자를 표시하거나 사용자 유형을 표시하는 Boolean 값.


Returns:
반환 값 없음
신원 및 접근 관리 기능을 위한 로그인 창을 엽니다.
var prop = {listUsers: 1};
system.openLoginWindow(prop);
system.openLoginWindow();
system.runScript(String scriptName) String scriptName: 실행할 스크립트 이름

Returns:
반환 값 없음
지정된 스크립트를 현재 프로젝트에서 별도의 스레드로 실행합니다.
system.runScript("Initialize");
system.screenshot(Storage type) Storage type:
2: Storage.Usb
3: Storage.SdCard

Returns:
반환 값 없음
런타임 동안 스크린샷을 찍습니다.
system.screenshot(Storage.Usb);
system.screenshot(3);
system.setDateTime(Date date) Date date:
Xpanel에 설정할 날짜와 시간

Returns:
반환 값 없음
Xpanel의 날짜와 시간을 설정합니다.
이 스크립트는 시뮬레이터에서 작동하지 않습니다.
var day = new Date("March 14, 2025 09:12:30");
system.setDateTime(day);
var now = new Date();
system.setDateTime(now);
system.setLanguage(String language) String language:
문자열 테이블 편집기에서 사용할 언어

Returns:
반환 값 없음
문자열 테이블 편집기에서 사용할 언어를 설정합니다.
이 값은 문자열 테이블 편집기의 열 이름 중 하나와 일치해야 합니다.
system.setLanguage("English");
system.staticBeep(boolean enable) boolean enable:
0: false
1: true

Returns:
반환 값 없음
Xpanel 내장 버저에서 비프 소리를 재생합니다.
이 스크립트는 시뮬레이터에서 작동하지 않습니다.
system.staticBeep(1);
thread.msleep(50);
system.staticBeep(0);
system.video.playFile(Storage type, String path) Storage type:
1: Storage.Local
2: Storage.Usb
3: Storage.SdCard
4: Storage.Ftp
5: Storage.Project

String path: 비디오 파일 경로

Returns:
반환 값 없음
지정된 경로의 비디오를 재생합니다.
이 스크립트는 시뮬레이터에서 작동하지 않습니다.
이것은 eXT2 시리즈에서만 작동합니다.
system.video.playFile
(Storage.Project, "Folder/safety.wav");
system.video.playFile(2, "safety.wav");
system.video.stop() Returns:
반환 값 없음
현재 비디오 재생을 중지합니다.
이 스크립트는 시뮬레이터에서 작동하지 않습니다.
이것은 eXT2 시리즈에서만 작동합니다.
system.video.stop();

태그

함수 매개변수

반환 값
설명

예제
tag.read(String name) String name:
읽을 태그의 이름

Returns:
태그의 데이터 타입
지정된 태그의 현재 값을 읽어옵니다.
// Integer tag
if(tag.read("Counter") < 5) {
	// 실행
}
// Float tag
if (tag.read("Amount") > 1.93684) {
	// 실행
}
// String tag
if (tag.read("Input") != ("Hello")) {
	// 실행
}
tag.write(String name, Value value) String name:
값을 설정할 태그의 이름

Value value:
태그에 설정할 값

Returns:
반환 값 없음
지정된 태그에 값을 설정합니다
tag.write("Counter", tag.read("Counter") + 1);
// "Counter" 태그를 1만큼 증가시킴
tag.writeBatch(Array tagNames, Array tagValues) Array tagNames:
태그 이름들의 배열

Array tagValues:
태그 값들의 배열

Returns:
반환 값 없음
여러 태그에 한 번에 값을 쓸 수 있습니다.
var tags = ["Tag 1", "Tag 2", "Tag 3"];
// 태그 배열
var vals = [0, 100, "Hello"];
// 값 배열
tag.writeBatch(tags, vals);
// 명령 쓰기

스레드

자바스크립트 언어 스크립트

자바스크립트 언어에 내장된 스크립트입니다.

배열

함수 매개변수

반환 값
설명

예제
thread.msleep(int msecs) int msecs:
밀리초 단위의 시간

Returns:
반환 값 없음
현재 스레드를 지정된 시간(밀리초 단위) 동안 일시 정지시키고, 이후 실행을 재개합니다.
thread.msleep(300);
thread.sleep(int secs) int secs:
초 단위의 시간

Returns:
반환 값 없음
현재 스레드를 지정된 시간(초 단위) 동안 일시 정지시키고, 이후 실행을 재개합니다.
thread.sleep(10);
함수 매개변수

반환 값
설명

예제
Array.isArray(value) value:
확인할 값

Returns:
Boolean 값
매개변수가 배열이면 true(1), 아니면 false(0)를 반환합니다.
Official documentation here.
var tags = ["t1", "t2", "t3"];
if (Array.isArray(tags)) {
	// 작업 수행
}

Date

함수 매개변수

반환 값
설명

예제
Date.now() Returns:
숫자
현재 시간의 타임스탬프(밀리초 단위)를 나타내는 숫자를 반환합니다.
공식 문서 확인
system.setDateTime(Date.now());
Date.parse(dateString) dateString:
날짜-시간 문자열 형식의 문자열
YYYY-MM-DDTHH:mm:ss:sssZ
  • YYYY: 연도 (0000 ~ 9999)
  • MM: 월 (01 ~ 12, 기본값 01)
  • DD: 일 (01 ~ 31, 기본값 01)
  • T: 시간 정보 시작을 나타내는 문자 (변경하지 마시오)
  • HH: 시 (00 ~ 23, 기본값 00)
    24:00:00은 자정(다음 날 00:00)을 의미하는 특별한 경우로 허용됨
  • mm: 분 (00 ~ 59, 기본값 00)
  • ss: 초 (00 ~ 59, 기본값 00)
  • sss: 밀리초 (00 ~ 59, 기본값 00)
  • z: 타임존 오프셋
    UTC를 의미하는 문자 z, 또는 + 혹은 - 다음에 HH:mm 형식으로 UTC와의 시간차 표시


Returns:
숫자
지정된 날짜의 타임스탬프를 나타내는 숫자를 반환합니다.
dateString이 유효하지 않으면 NaN을 반환합니다.
공식 문서 확인
var date = Date.parse("04 Dec 1995 00:12:00 GMT");
tag.write("Date", date);
Date.UTC(year, monthIndex, day, hours, minutes, seconds, milliseconds) year:
정수 값으로, 1900년부터 1999년 사이는 0부터 99까지로 표현됩니다


monthIndex:
매개변수 옵션 0부터 11까지의 정수 값으로, 0은 1월, 11은 12월을 의미합니다 (기본값: 0)


day:
매개변수 옵션 1부터 31까지의 정수 값으로, 날짜를 의미합니다 (기본값: 1)


hours:
매개변수 옵션 0부터 23까지의 정수 값으로, 하루 중 시간을 나타냅니다 (기본값: 0)


minutes:
매개변수 옵션 0부터 59까지의 정수 값으로, 분을 나타냅니다 (기본값: 0)


seconds:
매개변수 옵션 0부터 59까지의 정수 값으로, 초를 나타냅니다 (기본값: 0)


milliseconds:
매개변수 옵션 0부터 999까지의 정수 값으로, 밀리초를 나타냅니다 (기본값: 0)


Returns:
숫자
지정된 날짜의 타임스탬프를 나타내는 숫자를 반환합니다.
입력값이 잘못된 경우 NaN이 반환됩니다.
공식 문서 확인
var date = new Date(Date.UTC(96, 1, 2, 3, 4, 5));
tag.write("Date", date);

Global Objects

함수 매개변수

반환 값
설명

예제
decodeURI(encodedURI) encodedURI:
인코딩된 전체 URI

Returns:
문자열
인코딩된 URI 전체를 디코딩한 문자열을 반환합니다.
공식 문서 확인
var uri = "https://mozilla.org/?x=шеллы";
var encoded = encodeURI(uri);
notification.send(encoded);
// 예상 출력: "https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"
decodeURIComponent(encodedURI) encodedURI:
인코딩된 URI 구성 요소

Returns:
문자열
encodeURIComponent()로 인코딩된 URI 구성 요소를 디코딩하여 원래 문자열을 반환합니다.
공식 문서 확인
function containsEC(x) {
  // ie ?,=,&,/ etc
  return decodeURI(x) !== decodeURIComponent(x);
}
notification.send(
  containsEC("%3Fx%3Dtest"));
// ?x=test
// Expected output: true
notification.send(
  containsEC(
  "%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"));
// шеллы
// Expected output: false
encodeURI(uri) uri:
URI로 인코딩할 문자열

Returns:
String
주어진 문자열을 URI 형식에 맞게 인코딩한 새 문자열을 반환합니다.
공식 문서 확인
var uri = "https://mozilla.org/?x=шеллы";
var encoded = encodeURI(uri);
notification.send(encoded);
// 예상 출력: "https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"
encodeURIComponent(uriComponent) uriComponent:
URI 구성 요소로 인코딩할 문자열

Returns:
문자열
주어진 문자열을 URI의 구성 요소 형식에 맞게 인코딩한 새 문자열을 반환합니다
공식 문서 확인
// Encodes characters such as ?,=,/,&,:
notification.send(`?x=${encodeURIComponent("test?")}`);
// 예상 출력: "?x=test%3F"
notification.send(`?x=${encodeURIComponent("шеллы")}`);
// 예상 출력: "?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"
escape(str)
사용 중단됨
str:
URI로 인코딩할 문자열

Returns:
문자열
일부 문자를 이스케이프 처리한 새로운 문자열을 반환합니다.
공식 문서 확인
escape(str);
eval(script) script:
자바스크립트 표현식 또는 문장으로 구성된 문자열

표현식에는 기존 객체의 변수 및 속성이 포함될 수 있습니다

Returns:
실행 결과 값
문자열로 전달된 자바스크립트 코드를 실행하고 그 결과 값을 반환합니다.
코드는 스크립트로 해석됩니다.
경고: 문자열을 코드로 실행하는 것은 매우 위험한 보안 취약점을 야기할 수 있습니다.
eval() 사용은 신중히 결정해야 합니다.

공식 문서 확인
notification.send(eval("2 + 2"));
// 예상 출력: 4
notification.send(eval(new String("2 + 2")));
// 예상 출력: 2 + 2
notification.send(eval("2 + 2") === eval("4"));
// 예상 출력: true
notification.send(eval("2 + 2") === eval(new String("2 + 2")));
// 예상 출력: false
isFinite(value) value:
테스트할 값

Returns:
Boolean 값
지정된 값이 NaN, Infinity, -Infinity가 아닌 경우 true(1) 또는 false(0)를 반환합니다.
공식 문서 확인
function div(x) {
  if (isFinite(1000 / x)) {
    return "무한대가 아닙니다.";
  }
  return "무한대입니다!";
}
notification.send(div(0));
// 예상 출력 : "무한대입니다!"
notification.send(div(1));
// 예상 출력 : "무한대가 아닙니다."
isNaN(value) value:
테스트할 값

Returns:
Boolean 값
지정된 값이 NaN(숫자가 아님)인지 여부에 따라 true(1) 또는 false(0)를 반환합니다.
공식 문서 확인
function milliseconds(x) {
  if (isNaN(x)) {
    return "숫자가 아닙니다!";
  }
  return x * 1000;
}
notification.send
  (milliseconds("100F"));
// 예상 출력 : "숫자가 아닙니다!"
notification.send
  (milliseconds("0.0314E+2"));
// 예상 출력 : 3140
parseFloat(string) string:
문자열로 강제 변환되어 해석될 값입니다.

앞부분의 공백은 무시됩니다.


Returns:
Float 값
주어진 string에서 부동소수점 숫자를 해석하여 반환하거나, 첫 번째 비공백 문자가 숫자로 변환될 수 없는 경우 NaN을 반환합니다.
공식 문서 보기
function circumference(r) {
  return parseFloat(r) * 2.0 * Math.PI;
}
notification.send
  (circumference(4.567));
// 예상 출력 : 28.695307297889173
notification.send
  (circumference("4.567abcdefgh"));
// 예상 출력 : 28.695307297889173
notification.send
  (circumference("abcdefgh"));
// 예상 출력 : NaN
parseInt(string)

parseInt(string, radix)
string:
정수로 시작하는 문자열

앞부분의 공백은 무시됩니다.


radix:
매개변수 선택
2~36 사이의 정수

Returns:
정수 값
주어진 string에서 정수를 해석하여 반환합니다.
radix2보다 작거나 36보다 큰 경우, 또는 첫 번째 비공백 문자를 숫자로 변환할 수 없는 경우 NaN이 반환됩니다.
공식 문서 확인
notification.send(parseInt("123"));
// 123 (기본 10진수)
notification.send(parseInt("123", 10));
// 123 (명시적으로 10진수 지정)
notification.send(parseInt("   123 "));
// 123 (공백 무시)
notification.send(parseInt("077"));
// 77 (선행 0 무시)
notification.send(parseInt("1.9"));
// 1 (소수점 이하 절삭)
notification.send(parseInt("ff", 16));
// 255 (소문자 16진수)
notification.send(parseInt("0xFF", 16));
// 255 ("0x" 접두어 포함 대문자 16진수)
notification.send(parseInt("xyz"));
// NaN (숫자로 변환 불가)
unescape(str)
폐기됨
str:
디코딩할 문자열

Returns:
문자열
특정 문자가 디코딩된 새 문자열을 반환합니다.
공식 문서 확인
unescape("abc123"); // "abc123"
unescape("%E4%F6%FC"); // "äöü"
unescape("%u0107"); // "ć"

JSON

함수 매개변수

반환 값
설명

예제
JSON.parse(text)

JSON.parse(text, reviver)
text:
JSON으로 파싱할 문자열

reviver:
매개변수 선택
함수일 경우, 파싱된 값이 반환되기 전에 어떻게 변형될지 정의합니다.
  • key: 해당 값과 연관된 키
  • value: 파싱된 값
  • context (Optional): 현재 파싱된 표현식과 관련된 상태를 포함한 컨텍스트 오브젝트
    • source: 이 값을 나타내는 원본 JSON 문자열


Returns:
오브젝트, 배열, 문자열, 숫자, boolean 또는 null 값값
JSON 문자열을 파싱하여 해당 JavaScript 값 또는 객체를 생성합니다.
Official documentation here.
var json = '{"result":true, "count":42}';
var obj = JSON.parse(json);
notification.send(obj.count);
// 예상 출력: 42
notification.send(obj.result);
// 예상 출력: true
JSON.stringify(value)

JSON.stringify(value, replacer)

JSON.stringify(value, replacer, space)
value:
JSON 문자열로 변환할 값

reviver:
매개변수 선택
문자열화 과정의 동작을 변경하는 함수이거나, value의 어떤 속성만을 포함시킬지 지정하는 문자열 또는 숫자의 배열

space:
매개변수 선택
들여쓰기, 줄바꿈 등의 가독성을 위한 공백 문자를 지정할 수 있는 문자열 또는 숫자

Returns:
JSON 문자열
JavaScript 값을 JSON 문자열로 변환합니다. replacer 함수를 지정하면 값을 선택적으로 대체하거나, 배열을 지정하면 포함할 속성만 선택 가능합니다.
변환 후 객체에 대해 reviver 함수를 통해 추가 변환을 적용할 수도 있습니다.
공식 문서 확인
notification.send(JSON.stringify({ x: 5, y: 6 }));
// 예상 출력: '{"x":5,"y":6}'
notification.send([new Number(3), new String("false"), new Boolean(false)]),
);
// 예상 출력: '[3,"false",false]'
notification.send(JSON.stringify({ x: [10, undefined, function () {}, Symbol("")] }));
// 예상 출력: '{"x":[10,null,null,null]}'
notification.send(JSON.stringify(new Date(2006, 0, 2, 15, 4, 5)));
// 예상 출력: '"2006-01-02T15:04:05.000Z"'

Math

함수 매개변수

반환 값
설명

예제
Math.abs(x) x:
숫자

Returns:
숫자
x의 절댓값을 반환합니다.
x가 음수이거나 -0이면, 반대 부호의 숫자 -x를 반환합니다 (0 이상의 값).
결과는 항상 양수이거나 0입니다.
공식 문서 확인
Math.abs(-Infinity); // Infinity
Math.abs(-1); // 1
Math.abs(-0); // 0
Math.abs(0); // 0
Math.abs(1); // 1
Math.abs(Infinity); // Infinity
Math.acos(x) x:
-1 이상 1 이하의 숫자 (각도의 코사인 값)

Returns:
숫자
x의 아크코사인(역 코사인, 0에서 π 사이의 라디안 각도)을 반환합니다.
x가 -1보다 작거나 1보다 크면 NaN을 반환합니다.
공식 문서 확인
Math.acos(-2); // NaN
Math.acos(-1); // 3.141592653589793 (π)
Math.acos(0); // 1.5707963267948966 (π/2)
Math.acos(0.5); // 1.0471975511965979 (π/3)
Math.acos(1); // 0
Math.acos(2); // NaN
Math.asin(x) x:
-1 이상 1 이하의 숫자 (각도의 사인 값)

Returns:
숫자
x의 아크사인(역 사인, -π/2에서 π/2 사이의 라디안 각도)을 반환합니다.
x가 -1보다 작거나 1보다 크면 NaN을 반환합니다.
공식 문서 확인
Math.asin(-2); // NaN
Math.asin(-1); // -1.5707963267948966 (-π/2)
Math.asin(-0); // -0
Math.asin(0); // 0
Math.asin(0.5); // 0.5235987755982989 (π/6)
Math.asin(1); // 1.5707963267948966 (π/2)
Math.asin(2); // NaN
Math.atan(x) x:
숫자

Returns:
숫자
x의 아크탄젠트(역 탄젠트, -π/2에서 π/2 사이의 라디안 각도)를 반환합니다.
x가 Infinity일 경우 π/2를 반환하고,
x가 -Infinity일 경우 -π/2를 반환합니다.
공식 문서 확인
Math.atan(-Infinity); // -1.5707963267948966 (-π/2)
Math.atan(-0); // -0
Math.atan(0); // 0
Math.atan(1); // 0.7853981633974483  (π/4)
Math.atan(Infinity); // 1.5707963267948966  (π/2)
// (x, y) 좌표 평면에서 x, y 점이 x축과 이루는 각도
var theta = (x, y) => Math.atan(y / x);
Math.atan2(y, x) y:
지점의 y 좌표

x:
지점의 x 좌표

Returns:
숫자
(0, 0)에서 (x, y) 점을 연결한 직선이 x축과 이루는 각도를 라디안으로 반환합니다. 반환 값은 -π에서 π 사이입니다.
공식 문서 확인
Math.atan2(90, 15); // 1.4056476493802699
Math.atan2(15, 90); // 0.16514867741462683
Math.ceil(x) x:
숫자

Returns:
숫자
x보다 크거나 같은 가장 작은 정수를 반환합니다.
이 값은 -Math.floor(-x)와 동일합니다.
공식 문서 확인
Math.ceil(-Infinity); // -Infinity
Math.ceil(-7.004); // -7
Math.ceil(-4); // -4
Math.ceil(-0.95); // -0
Math.ceil(-0); // -0
Math.ceil(0); // 0
Math.ceil(0.95); // 1
Math.ceil(4); // 4
Math.ceil(7.004); // 8
Math.ceil(Infinity); // Infinity
Math.cos(x) x:
라디안 단위의 각도를 나타내는 숫자

Returns:
숫자
x의 코사인 값을 반환합니다 (라디안 단위의 각도).
x가 Infinity, -Infinity, 또는 NaN이면 NaN을 반환합니다.
공식 문서 확인
Math.cos(-Infinity); // NaN
Math.cos(-0); // 1
Math.cos(0); // 1
Math.cos(1); // 0.5403023058681398
Math.cos(Math.PI); // -1
Math.cos(2 * Math.PI); // 1
Math.cos(Infinity); // NaN
Math.exp(x) x:
숫자

Returns:
숫자
ex 값을 반환합니다. e는 자연로그의 밑입니다.
x가 Infinity, -Infinity, 또는 NaN이면 NaN을 반환합니다.
공식 문서 확인
Math.exp(-Infinity); // 0
Math.exp(-1); // 0.36787944117144233
Math.exp(0); // 1
Math.exp(1); // 2.718281828459045
Math.exp(Infinity); // Infinity
Math.floor(x) x:
숫자

Returns:
숫자
x와 같거나 작은 수 중 가장 큰 값을 반환합니다.
-Math.ceil(-x)와 같은 값입니다.
공식 문서 확인
Math.floor(-Infinity); // -Infinity
Math.floor(-45.95); // -46
Math.floor(-45.05); // -46
Math.floor(-0); // -0
Math.floor(0); // 0
Math.floor(4); // 4
Math.floor(45.05); // 45
Math.floor(45.95); // 45
Math.floor(Infinity); // Infinity
Math.log(x) x:
0 이상인 숫자

Returns:
숫자
x의 자연로그 (밑이 e)를 반환합니다.
x가 ±0이면 -Infinity를 반환합니다.
x가 0보다 작으면 NaN을 반환합니다.
공식 문서 확인
Math.log(-1); // NaN
Math.log(-0); // -Infinity
Math.log(0); // -Infinity
Math.log(1); // 0
Math.log(10); // 2.302585092994046
Math.log(Infinity); // Infinity
Math.max()

Math.max(value1)

Math.max(value1, value2)

Math.max(value1, value2, ..., valueN)
value:
매개변수 선택
0 이상의 숫자 중에서 가장 큰 값을 선택하여 반환합니다.

Returns:
Number
인수 중 가장 큰 숫자를 반환합니다.
하나 이상의 숫자 값이 주어져야 하며, 그 중 가장 큰 값을 반환합니다.
값이 없으면 -Infinity를 반환합니다.
공식 문서 확인
Math.max(10, 20); // 20
Math.max(-10, -20); // -10
Math.max(-10, 20); // 20
Math.min()

Math.min(value1)

Math.min(value1, value2)

Math.min(value1, value2, ..., valueN)
value:
매개변수 선택
0 이상의 숫자 중에서 가장 작은 값을 선택하여 반환합니다.

Returns:
숫자
주어진 숫자들 중에서 가장 작은 값을 반환합니다.
만약 파라미터 중 하나가 또는 하나가 NaN으로 변환될 경우, NaN을 반환합니다.
파라미터가 하나도 제공되지 않으면, Infinity를 반환합니다.
공식 문서 확인
Math.min(10, 20); // 10
Math.min(-10, -20); // -20
Math.min(-10, 20); // -10
Math.pow(base, exponent) base:
밑수

exponent:
지수

Returns:
숫자
baseexponent만큼 거듭제곱한 값을 반환합니다.
다음과 같은 경우에 NaN을 반환합니다:
  • exponentNaN인 경우.
  • baseNaN이고 exponent가 0이 아닌 경우.
  • base가 ±1이고 exponent가 ±Infinity인 경우.
  • base < 0이고 exponent가 정수가 아닌 경우.

공식 문서 확인
Math.pow(7, 2); // 49
Math.pow(7, 3); // 343
Math.pow(4, 0.5); // 2 (4의 제곱근)
Math.pow(8, 1 / 3); // 2 (8의 세제곱근)
Math.pow(7, -2); // 0.02040816326530612 (1/49)
Math.pow(8, -1 / 3); // 0.5
Math.pow(-7, 2); // 49 (제곱은 양수)
Math.pow(-7, 0.5); // NaN (음수는 실수 제곱근이 존재하지 않음)
// 짝수 및 홀수 근이 서로 근접해 있고,
// 부동소수점의 정밀도 한계로 인해,
// 음수를 밑으로 하는 분수 지수 계산은
// 수학적으로 실수 결과가 존재하더라도 항상 NaN을 반환합니다.
Math.pow(-7, 1 / 3); // NaN
Math.pow(0, 0); // 1 (0의 0승은 1)
Math.pow(Infinity, 0.1); // Infinity (양의 지수)
Math.pow(NaN, 0); // 1
Math.pow(NaN, 1); // NaN
Math.pow(1, NaN); // NaN
Math.random() Returns:
부동소수점, 모의 난수
0(포함)과 1(미포함) 사이의 부동소수점 모의 난수를 반환합니다.
공식 문서 확인
function getRandom() {
  return Math.random();
}
Math.round(x) Returns:
숫자

Returns:
숫자
x의 값을 가장 가까운 정수로 반올림하여 반환합니다.
공식 문서 확인
Math.round(-Infinity); // -Infinity
Math.round(-20.51); // -21
Math.round(-20.5); // -20
Math.round(-0.1); // -0
Math.round(0); // 0
Math.round(20.49); // 20
Math.round(20.5); // 21
Math.round(42); // 42
Math.round(Infinity); // Infinity
Math.sin(x) x:
라디안 단위로 된 각도

Returns:
숫자
x의 사인 값을 반환합니다 (각도는 -1과 1 사이의 값).
x가 Infinity, -Infinity 또는 NaN이면 NaN을 반환합니다.
공식 문서 확인
Math.sin(-Infinity); // NaN
Math.sin(-0); // -0
Math.sin(0); // 0
Math.sin(1); // 0.8414709848078965
Math.sin(Math.PI / 2); // 1
Math.sin(Infinity); // NaN
Math.sqrt(x) x:
0 이상인 숫자

Returns:
숫자
x의 제곱근을 반환합니다 (단, x는 0 이상의 숫자여야 함).
x가 0보다 작으면 NaN을 반환합니다.
공식 문서 확인
Math.sqrt(-1); // NaN
Math.sqrt(-0); // -0
Math.sqrt(0); // 0
Math.sqrt(1); // 1
Math.sqrt(2); // 1.414213562373095
Math.sqrt(9); // 3
Math.sqrt(Infinity); // Infinity
Math.tan(x) x:
라디안 단위의 각도를 나타내는 숫자

Returns:
숫자
x의 탄젠트 값을 반환합니다.
x가 Infinity, -Infinity 또는 NaN인 경우 NaN을 반환합니다.
공식 문서 확인
Math.tan(-Infinity); // NaN
Math.tan(-0); // -0
Math.tan(0); // 0
Math.tan(1); // 1.5574077246549023
Math.tan(Math.PI / 4); // 0.9999999999999999 (부동소수점 오차)
Math.tan(Infinity); // NaN

Object

함수 매개변수

반환 값
설명

예제
Object.create(proto)

Object.create(proto, propertiesObject)
proto:
새로 생성될 오브젝트의 프로토타입으로 사용할 객체

propertiesObject:
매개변수 선택
지정되었고 정의 되지않을 경우, 새로 생성될 객체에 추가할 속성 설명자들이 담긴 오브젝트. 이 오브젝의 열거 가능한 자체 속성들이 속성 이름으로 사용됩니다.

Returns:
오브젝트
기존 오브젝트를 프로토타입으로 사용해 새 오브젝트를 생성합니다.
공식 문서 확인
var person = {
  isHuman: false,
  printIntroduction: function () {
    console.log(`My name is ${this.name}. Am I human? ${this.isHuman}`);
  },
};
var me = Object.create(person);
me.name = "Matthew"; 
// "name" is a property set on "me", but not on "person"
me.isHuman = true; 
// Inherited properties can be overwritten
me.printIntroduction();
// Expected output: "My name is Matthew. Am I human? true"
Object.defineProperties(obj, props) obj:
속성을 정의할 오브젝트

props:
정의하거나 수정할 속성의 이름을 나타내는 키를 가지며, 속성에 대한 설명을 포함하는 객체
  • configurable: 속성의 설정이 변경 가능하고, 해당 속성이 오브젝트에서 삭제 가능한 경우 (기본값 : false)
  • enumerable: 속성이 오브젝트의 속성 열거 시 나타나는지 여부 (기본값 : false)
  • value (Optional): 속성에 관련된 값 (기본값 : false)
  • writable (Optional): 속성의 값을 변경할 수 있는지 여부 (기본값 : false)
  • get (선택 사항): 속성에 대한 getter 역할을 하는 함수입니다. 정의되지 않은 경우 undefined입니다 (기본값: undefined).
  • set (선택 사항): 속성에 대한 setter 역할을 하는 함수입니다. 정의되지 않은 경우 undefined입니다 (기본값: undefined).


Returns:
오브젝트
오브젝트에 새로운 속성을 정의하거나 기존 속성을 수정하고 오브젝트를 반환합니다.
공식 문서 확인
var object1 = {};
Object.defineProperties(
  object1, 
  {
    property1: {
      value: 42,
      writable: true,
  },
  property2: {},
});
notification.send
  (object1.property1);
// Expected output: 42
Object.defineProperty(obj, prop, descriptor) obj:
속성을 정의하거나 수정할 오브젝트

prop:
정의하거나 수정하려는 속성의 이름을 나타내는 문자열 또는 기호

descriptor:
정의하거나 수정하려는 속성의 설명자

Returns:
오브젝트
오브젝트에서 새로운 속성을 정의하거나 기존 속성을 수정하고 오브젝트를 반환합니다.
공식 문서 확인
var object1 = {};
Object.defineProperty(
  object1, 
  "property1", {
    value: 42,
    writable: false,
});
object1.property1 = 77;
// 엄격 모드에서는 오류가 발생합니다
notification.send
  (object1.property1);
// 예상 출력: 42
Object.
getOwnPropertyDescriptor(obj, prop)
obj:
속성을 찾을 오브젝트

prop:
설명을 가져올 속성의 이름 또는 기호

Returns:
오브젝트
주어진 오브젝트에서 특정 속성의 설명을 반환합니다.
공식 문서 확인
var object1 = {
  property1: 42,
};
var descriptor1 = Object.
  getOwnPropertyDescriptor(
    object1, 
    "property1");
notification.send
(descriptor1.configurable);
// Expected output: true
notification.send
  (descriptor1.value);
// Expected output: 42
Object.getPrototypeOf(obj) obj:
프로토타입을 반환할 오브젝트

Returns:
프로토타입
지정된 오브젝트의 프로토타입을 반환합니다. 오브젝트가 없으면 null을 반환합니다.
공식 문서 확인
var prototype1 = {};
var object1 = Object.create(prototype1);
notification.send
  (Object.getPrototypeOf
    (object1) === prototype1);
// Expected output: true
Object.keys(obj) obj:
오브젝트

Returns:
배열
주어진 오브젝트의 속성 이름을 배열로 반환합니다.
공식 문서 확인
var object1 = {
  a: "somestring",
  b: 42,
  c: false,
};
notification.send
  (Object.keys(object1));
// 예상 출력: Array ["a", "b", "c"]
Object.preventExtensions(obj) obj:
확장 불가능하게 만들 오브젝트

Returns:
오브젝트
오브젝트에 새로운 속성이 추가되지 않도록 방지하며, 오브젝트의 프로토타입을 재할당할 수도 없습니다.
공식 문서 확인
var object1 = {};
Object.preventExtensions
  (object1);
try {
  Object.defineProperty(
    object1, 
    property1", {
      value: 42,
  });
} catch (e) {
  notification.send(e);
// 예상 출력: TypeError: Cannot define property property1, object is not extensible
}

String

함수 매개변수

반환값
설명

예시
String.fromCharCode()

String.fromCharCode(num1)

String.fromCharCode(num1, num2)

String.fromCharCode(num1, num2, ..., numN)
num:
매개변수 선택
0과 65,535(0xFFFF) 사이의 숫자로 UTF-16 코드 유닛을 나타냅니다.
0xFFFF를 초과하는 숫자는 마지막 16비트로 잘립니다.

Returns:
문자열
지정된 UTF-16 코드 유닛 시퀀스로 생성된 문자열을 반환합니다.
공식 문서 확인
notification.send
(String.fromCharCode(189, 43, 190, 61));
// 예상 출력: "½+¾="