ການປ່ຽນປະເພດ JavaScript

Number() ການປ່ຽນເປັນຈຳນວນ.String() ການປ່ຽນເປັນຄວາມ.Boolean() ການປ່ຽນເປັນຄວາມຈະຈັງ.

ຮູບແບບຂໍ້ມູນ JavaScript

JavaScript ມີຫ້າບັນດາບັນດາຄູ່ມືທີ່ສາມາດກວມຄູ່ມືມາ:

  • ຄວາມ (string)
  • ຈຳນວນ (number)
  • ຄວາມຈະຈັງ (boolean)
  • ບັນດາບັນດາ (object)
  • ພາສາ (function)

ມີສາມບັນດາບັນດາບັນດາຄູ່ມື:

  • ບັນດາບັນດາ (Object)
  • ວັນທີ (Date)
  • ສາຍ (Array)

ມີສອງບັນດາບັນດາຄູ່ມືທີ່ບໍ່ສາມາດກວມຄູ່ມືມາ:

  • null
  • undefined

ຄູ່ມື typeof

ທ່ານສາມາດໃຊ້. typeof ຄູ່ມືສັບສັນທີ່ຈະກວດສອບບັນດາຄູ່ມື JavaScript ຂອງຕົວປະກອບຂໍ້ມູນ.

ຕົວຢ່າງ

typeof "Bill"                 // ການກັບຄືນ "string"
typeof 3.14                   // ການກັບຄືນ "number"
typeof NaN                    // ການກັບຄືນ "number"
typeof false                  // 返回 "boolean"
typeof [1,2,3,4]              // 返回 "object"
typeof {name:'Bill', age:62}  // 返回 "object"
typeof new Date()             // 返回 "object"
typeof function () {}         // 返回 "function"
typeof myCar                  // 返回 "undefined" *
typeof null                   // 返回 "object"

ຕື່ມຕັ້ງຄົ້ນຫາ

请注意:

  • NaN 的数据类型是数值
  • 数组的数据类型是对象
  • 日期的数据类型是对象
  • null 的数据类型是对象
  • 未定义变量的数据类型是 undefined
  • 尚未赋值的变量的数据类型也是 undefined

您无法使用 typeof 去判断 JavaScript 对象是否是数组(或日期)。

typeof 的数据类型

typeof 运算符不是变量。它属于运算符。运算符(比如 + - * /)没有数据类型。

但是,typeof 始终会返回字符串(包含运算数的类型)。

constructor 属性

constructor 属性返回所有 JavaScript 变量的构造器函数。

ຕົວຢ່າງ

"Bill".constructor                 // 返回 "function String()  { [native code] }"
(3.14).constructor                 // 返回 "function Number()  { [native code] }"
false.constructor                  // 返回 "function Boolean() { [native code] }"
[1,2,3,4].constructor              // 返回 "function Array()   { [native code] }"
{name:'Bill', age:62}.constructor  // 返回" function Object()  { [native code] }"
new Date().constructor             // ກັບ "function Date()    { [native code] }"
function () {}.constructor         // ກັບ "function Function(){ [native code] }"

ຕື່ມຕັ້ງຄົ້ນຫາ

ທ່ານສາມາດກວດກາດັ່ງກ່າວ: constructor ການກວດກາວ່າບັນດາວິທີຈະເປັນສານ (ບັນຍາ "Array"):

ຕົວຢ່າງ

function isArray(myArray) {
    return myArray.constructor.toString().indexOf("Array") > -1;
}

ຕື່ມຕັ້ງຄົ້ນຫາ

ຫຼືທີ່ງ່າຍກວ່າ, ທ່ານສາມາດກວດກາວ່າບັນດາວິທີຈະເປັນວິທີຂອງສານ:

ຕົວຢ່າງ

function isArray(myArray) {
    return myArray.constructor === Array;
}

ຕື່ມຕັ້ງຄົ້ນຫາ

ທ່ານສາມາດກວດກາດັ່ງກ່າວ: constructor ການກວດກາວ່າບັນດາວິທີຈະເປັນວິທີຂອງວັນ (ບັນຍາ "Date"):

ຕົວຢ່າງ

function isDate(myDate) {
    return myDate.constructor.toString().indexOf("Date") > -1;
}

ຕື່ມຕັ້ງຄົ້ນຫາ

ຫຼືທີ່ງ່າຍກວ່າ, ທ່ານສາມາດກວດກາວ່າບັນດາວິທີຈະເປັນວິທີຂອງວັນ:

ຕົວຢ່າງ

function isDate(myDate) {
    return myDate.constructor === Date;
}

ຕື່ມຕັ້ງຄົ້ນຫາ

ການປ່ຽນປະເພດ JavaScript

ສານວິທີ JavaScript ສາມາດປ່ຽນເປັນສານວິທີໃໝ່ຫຼືຮູບແບບຂໍ້ມູນອື່ນໆ:

  • ຜ່ານການນຳໃຊ້ຫຼັກວິທີ JavaScript
  • ຜ່ານ JavaScript ດັ່ງກ່າວອັດຕາການປ່ຽນ

ປ່ຽນຈຳນວນເປັນສາຍວິທີ

ພະຍາດທົ່ວໄປ String() ສາມາດປ່ຽນຈຳນວນເປັນສາຍວິທີ.

ສາມາດນຳໃຊ້ສຳລັບຈຳນວນທີ່ສາມາດທັງໝົດຄື:ຈຳນວນ,ຄຳຕັດ,ສານວິທີ,ສັບສັດ.

ຕົວຢ່າງ

String(x)         // ການກັບຄືນຈຳນວນຈາກຂໍ້ມູນທີ່ກໍານົດ
String(123)       // ການກັບຄືນຈຳນວນຈາກຂະແໜງການຄຳຕັດ
String(100 + 23)  // ການກັບຄືນຈຳນວນຈາກສັບສັດ

ຕື່ມຕັ້ງຄົ້ນຫາ

ພື້ນຖານສະນັກງານ toString() ຄືກັນ.

ຕົວຢ່າງ

x.toString()
(123).toString()
(100 + 23).toString()

ຕື່ມຕັ້ງຄົ້ນຫາ

ໃນພື້ນຖານສະນັກງານໃນວັນນີ້ທ່ານຈະຮຽນຫຼາຍກິດຈະກໍາທີ່ສາມາດນຳໃຊ້ເພື່ອປ່ຽນຈຳນວນທີ່ສາມາດການປ່ຽນເປັນສາຍວິທີ:

ພື້ນຖານ ການອະທິບາຍ
toExponential() ການກັບຄືນສາຍວິທີຂອງຈຳນວນທີ່ຈະຕັດສິນລະດັບສຳຄັນທີ່ກໍານົດຄືນ.
toFixed() ການກັບຄືນສາຍວິທີຂອງຈຳນວນທີ່ຈະຕັດສິນລະດັບສຳຄັນທີ່ກໍານົດຄືນ.
toPrecision() ການກັບຄືນສາຍວິທີຂອງຕາມຈຳນວນຄວາມສຳຄັນທີ່ກໍານົດຄືນ.

ປ່ຽນສະນັກງານເປັນສາມາດ

ພະຍາດທົ່ວໄປ String() ສາມາດປ່ຽນສະນັກງານເປັນສາມາດ.

String(false)        // ກັບຄືນ "false"
String(true)         // ກັບຄືນ "true"

ພື້ນຖານສະນັກງານ toString() ຄືກັນ.

false.toString()     // ກັບຄືນ "false"
true.toString()      // ກັບຄືນ "true"

ປ່ຽນວັນເປັນສາມາດ

ພະຍາດທົ່ວໄປ String() ສາມາດປ່ຽນວັນເປັນສາມາດ.

String(Date())      

ພະຍາດວັນທີ toString() ຄືກັນ.

ຕົວຢ່າງ

Date().toString()   

ໃນພະຍາດວັນທີໃນປະຈຳນີ້ວ່າ ທ່ານຈະພົບຫລາຍການນຳໃຊ້ທີ່ສາມາດປ່ຽນຂໍ້ຄວາມວັນເປັນສາມາດ:

ພື້ນຖານ ການອະທິບາຍ
getDate() ການຮຽກຮ້ອງວັນ (1-31)
getDay() ຫຼືປະກອບດ້ວຍວັນອາທິດ (0-6)
getFullYear() ການຮຽກຮ້ອງປີສີ່ທີມ (yyyy)
getHours() ການຮຽກຮ້ອງວັນ (0-23)
getMilliseconds() ການຮຽກຮ້ອງມື້ວິນາທີ (0-999)
getMinutes() ການຮຽກຮ້ອງນາທີ (0-59)
getMonth() ການຮຽກຮ້ອງເດືອນ (0-11)
getSeconds() ການຮຽກຮ້ອງວິນາທີ (0-59)
getTime() ການຮຽກຮ້ອງເວລາ (1970 ປີ 1 ທັນວາທີ 1 ມື້) ເປັນມັນສາມາດ

ປ່ຽນຂໍ້ຄວາມເປັນອັດຕາ

ພະຍາດທົ່ວໄປ Number() ສາມາດປ່ຽນຂໍ້ຄວາມເປັນເລກ.

ຂໍ້ຄວາມທີ່ມີເລກ (ອີງຕາມ "3.14") ຈະປ່ຽນເປັນເລກ (ອີງຕາມ 3.14)。

ຂໍ້ຄວາມຟັງຈະປ່ຽນເປັນ 0。

ຂໍ້ຄວາມອື່ນໆຈະປ່ຽນເປັນ NaN(Not a number,不是数字)。

Number("3.14")    // ກັບຄືນ 3.14
Number(" ")       // ກັບຄືນ 0
Number("")        // ກັບຄືນ 0
Number("99 88")   // ກັບຄືນ NaN

ໃນພື້ນຖານສະນັກງານໃນປະຈຳນີ້ວ່າ ທ່ານຈະພົບຫລາຍການນຳໃຊ້ທີ່ສາມາດປ່ຽນຂໍ້ຄວາມເປັນເລກ:

ພື້ນຖານ ການອະທິບາຍ
parseFloat() ການບັນທຶກວິທະຍຸພາຍໃນຂໍ້ຄວາມ ແລະກັບຄືນເປັນອັດຕາສາມາດລະດັບສະເຫຼີມ.
parseInt() ການບັນທຶກວິທະຍຸພາຍໃນຂໍ້ຄວາມ ແລະກັບຄືນເປັນອັດຕາສາມາດ.

ການດັງຫນາງ +

ການດັງຫນາງ + ສັນຍາການສາມາດນຳໃຊ້ທີ່ປ່ຽນສະນັກງານເປັນເລກ:

ຕົວຢ່າງ

var y = "5";      // y ແມ່ນຂໍ້ຄວາມ
var x = + y;      // x ແມ່ນເລກ

ຕື່ມຕັ້ງຄົ້ນຫາ

ຖ້າບໍ່ສາມາດປ່ຽນສະນັກງານຫຼາຍແບບຫຼາຍຫົວເລກໄດ້ ຈະກາຍເປັນເລກ ແຕ່ວ່າຄຸນຄ່າຈະແມ່ນ NaN(Not a number):

ຕົວຢ່າງ

var y = "Bill";   // y ແມ່ນຂໍ້ຄວາມ
var x = + y;      // x ຖືກກຳນົດເປັນຈຳນວນ (NaN)

ຕື່ມຕັ້ງຄົ້ນຫາ

ປ່ຽນ boolean ເປັນຈຳນວນ

ພະຍາດທົ່ວໄປ Number() ກໍ່ສາມາດປ່ຽນ boolean ເປັນຈຳນວນ.

Number(false)     // ກຳລັງ 0
Number(true)      // ກຳລັງ 1

ປ່ຽນວັນທີເປັນຈຳນວນ

ພະຍາດທົ່ວໄປ Number() ສາມາດໃຊ້ເພື່ອປ່ຽນວັນທີເປັນຈຳນວນ.

d = new Date();
Number(d)          

ພະຍາດວັນທີ getTime() ຄືກັນ.

d = new Date();
d.getTime()        

ປ່ຽນແປງຄວາມຕາມຕົວເລກ

ຖ້າ JavaScript ພະຍາຍາມກະຈາຍບັນດາຄວາມ "ບໍ່ທຳມະດາ" ມັນຈະພະຍາຍາມປ່ຽນຄວາມນັ້ນເປັນ "ທຳມະດາ"

ຜົນຈະບໍ່ຕົກລົງຕາມທີ່ທ່ານຄິດ:

5 + null    // ກຳລັງ 5         ຍ້ອນ null ຖືກປ່ຽນເປັນ 0
"5" + null  // ກຳລັງ "5null"   ຍ້ອນ null ຖືກປ່ຽນເປັນ "null"
"5" + 2     // ກຳລັງ 52        ຍ້ອນ 2 ຖືກປ່ຽນເປັນ "2"
"5" - 2     // ກຳລັງ 3         ຍ້ອນ "5" ຖືກປ່ຽນເປັນ 5
"5" * "2"   // ກຳລັງ 10        ຍ້ອນ "5" ແລະ "2" ຖືກປ່ຽນເປັນ 5 ແລະ 2

ຕື່ມຕັ້ງຄົ້ນຫາ

ປ່ຽນແປງຄວາມພາສາສຳພັນອາດດຽວ

JavaScript ອາດກະຈາຍຄວາມພາສາສຳພັນຂອງບັນດາຄວາມ: toString() ຫົວຫນື່ງທີ່ພົບຖ້າທ່ານພະຍາຍາມ "ກະຈາຍ" ໂອກາດ ຫຼື ບັນດາຄວາມ:

document.getElementById("demo").innerHTML = myVar;
// ຖ້າ myVar = {name:"Fjohn"}  // toString ປ່ຽນແປງເປັນ "[object Object]"
// ຖ້າ myVar = [1,2,3,4]       // toString ປ່ຽນແປງເປັນ "1,2,3,4"
// ຖ້າ myVar = new Date()      // toString ປ່ຽນແປງເປັນ ""

ຈຳນວນ ແລະ boolean ຈະຖືກປ່ຽນແປງ ແຕ່ບໍ່ເປັນທີ່ຈະເຫັນ:

// ຖ້າ myVar = 123             // toString ປ່ຽນແປງເປັນ "123"
// ຖ້າ myVar = true            // toString ປ່ຽນແປງເປັນ "true"
// ຖ້າ myVar = false           // toString ປ່ຽນແປງເປັນ "false"

ຕາຕະລາງການປ່ຽນປ່ານທີ່ຈະຖືກປ່ຽນປ່ານ JavaScript

ມີການຈັດອອກໃນຕາຕະລາງດ້ານຫນຶ່ງທີ່ສະແດງຄວາມສົມບູນ, ຄຳລຽບ, ແລະ ຄວາມຮູບຮ່າງທີ່ຈະຖືກປ່ຽນປ່ານຈາກຄວາມສົມບູນ JavaScript ທັງໝົດ.

ຄວາມຕົ້ນເຫຼັກ ການແປງເປັນຈຳນວນ ການແປງເປັນຄຳລຽບ ການແປງເປັນຄວາມຮູບຮ່າງ ການກວດສອບອີກ
false 0 "false" false ການກວດສອບອີກ
true 1 "true" true ການກວດສອບອີກ
0 0 "0" false ການກວດສອບອີກ
1 1 "1" true ການກວດສອບອີກ
"0" 0 "0" true ການກວດສອບອີກ
"000" 0 "000" true ການກວດສອບອີກ
"1" 1 "1" true ການກວດສອບອີກ
NaN NaN "NaN" false ການກວດສອບອີກ
Infinity Infinity "Infinity" true ການກວດສອບອີກ
-Infinity -Infinity "-Infinity" true ການກວດສອບອີກ
"" 0 "" false ການກວດສອບອີກ
"20" 20 "20" true ການກວດສອບອີກ
"twenty" NaN "twenty" true ການກວດສອບອີກ
[ ] 0 "" true ການກວດສອບອີກ
[20] 20 "20" true ການກວດສອບອີກ
[10,20] NaN "10,20" true ການກວດສອບອີກ
["twenty"] NaN "twenty" true ການກວດສອບອີກ
["ten","twenty"] NaN "ten,twenty" true ການກວດສອບອີກ
function(){} NaN "function(){}" true ການກວດສອບອີກ
{ } NaN "[object Object]" true ການກວດສອບອີກ
null 0 "null" false ການກວດສອບອີກ
undefined NaN "undefined" false ການກວດສອບອີກ

ຄວາມສົມບູນໃນຄຳລຽບທີ່ຊີ້ແຈງຄວາມສົມບູນຄຳລຽບ.

ຄວາມສົມບູນສີແດງການຊີ້ແຈງ (ບາງ) ຄວາມສົມບູນທີ່ຜູ້ຂັດເງິນບໍ່ຕ້ອງການ.