CSS 선택기가 포함 된 트리 구조가 있습니다. 제 목표는 선택기와 일치하는 입력 요소의 값을 트리에 넣는 것입니다. 예를 들어 id 텍스트 상자와 값 67이있는 <input type="text/>
이있는 경우이 {selector : "#textbox"} -> {value : 67}과 같은 작업을 수행하려고합니다.javascript/typescript가 암시 적으로 날짜 객체를 문자열로 변환하는 이유는 무엇입니까?
입력 유형이 날짜 인 경우를 제외하고 모든 경우에이 기능이 작동합니다. 이 경우 문자열을 날짜 객체로 변환하려고합니다. 내 코드는 다음과 같습니다.
val = sel.val();
let type = sel.attr("type");
if(type == "number")
{
val = Number(val);
}
else
if(type == "date")
{
val = Date(val);
}
//#1
ast["value"] = val;
//#2
delete ast.selector;
입력 유형이 날짜 일 때 val은 Date 객체입니다. 포인트 # 2에서, ast [ "value"]/ast.value는 Date 오브젝트입니다. 그러나 전체 ast 개체를 인쇄하면 ast [ "value"]/ast.value가 문자열로 표시됩니다. 이 문자열 값은 나머지 코드를 통해 전달되어 문제를 일으 킵니다. 이 날짜는 암시 적으로 변환하기되지 않은 경우,이
Wed Jul 27 2016 10:14:19 GMT-0600 (MDT) eval.js:249 //ast["value"] at point #2
Object {selector: "this", value: "Wed Jul 27 2016 10:14:19 GMT-0600 (MDT)"} eval.js:250 //ast at point #2
을 보여주는 콘솔에서 인용 한 것입니다, 출력은 내가 크롬과 파이어 폭스 모두 수율이 코드를 테스트 한
Wed Jul 27 2016 10:14:19 GMT-0600 (MDT) eval.js:249 //ast["value"] at point #2
Object {selector: "this", value: Wed Jul 27 2016 10:14:19 GMT-0600 (MDT)} eval.js:250 //ast at point #2
것 같은 결과.
확실한가요? 콘솔 기능/"기능"일 수도 있습니다. –
항상 날짜로 전송할 수 있습니다. Date.prototype.toString' IIRC는 구현에 따라 다르지만, 플랫폼의 자체 문자열 표현에서 Date를 구성하는 한 괜찮습니다. –
날짜가 아닐 때 날짜로 캐스팅하지 마십시오! 그것은 단지 길을 걷어차는 것뿐입니다. –