有趣生活

当前位置:首页>科技>javascript数据类型怎么用JavaScript数据类型

javascript数据类型怎么用JavaScript数据类型

发布时间:2026-07-25阅读(1)

导读javascript是弱类型语言。即,一个变量可以赋不同数据类型的值。javascript允许变量类型的隐式转换,允许强制类型转换等,如字符串和数值可以自动....

javascript是弱类型语言。即,一个变量可以赋不同数据类型的值。javascript允许变量类型的隐式转换,允许强制类型转换等,如字符串和数值可以自动转化;而强类型语言一般不允许这么做。

在JavaScript里 变量均为对象。当声明一个变量时,就创建了一个新的对象;

基本类型:字符串(String)、数字(number)、布尔(boolean)、对空(Null)、未定义(Undefined)、Symbol(注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。)。

对象类型:对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)。

let x; // x 为 undefined let x = 5; // 现在 x 为数字let x1 = 34.00; // 小数点 也是数字类型let x = "John"; // 现在 x 为字符串let x = ["Q", "C", 1, 3]; // 数组 可以直接let x = {name:leo, age: 17}; // 对象let t = function () {} // 函数 function// 变量类型的隐式转换let x1 = 5; // 定义时是 typeof x1 number x1 = json; // 通过赋值string 变成了 typeof x1 string // 数组定义let arr = [];or let arr = new Array();cars[0]="Saab"; // 为数组第一项赋值orlet arr = ["Saab"]// 对象定义与数组类似let arr = {};or let arr = new Object();cars[name]="Saab"; // 为对象添加key-valueorlet arr = {name: "Saab"}

变量的数据类型可以使用 typeof

typeof "leo" // 返回 stringtypeof 2.67 // 返回 numbertypeof true // 返回 booleantypeof ["Q", "C"] // 返回 objecttypeof {name:leo, age: 17} // 返回 objecttypeof function(){} // 返回 functiontypeof null // 返回 object// 注:typeof 数组与对象,null都返回,object// 如何区分他三呢?let n = null;console.log(n === null); // true// 判断数组1,instanceof var arr = [1,2,3,1];console.log(arr instanceof Array); // true 2,constructorvar arr = [1,2,3,1];console.log(arr.constructor === Array); // true 3,Object.prototype.toStringfunction isArrayFn (o) {return Object.prototype.toString.call(o) === [object Array];}var arr = [1,2,3,1];console.log(isArrayFn(arr));// true4,es5 新增Array.isArray()var arr = [1,2,3,1];console.log(Array.isArray(arr));// true// 补充几个判断 null/object/array 的工具类// 通过 typeofvar getDataType = function(o){ if(o===null){ return null; } else if(typeof o == object){ if( typeof o.length == number ){ return Array; }else{ return Object; } }else{ return param is no object type; }}// 通过instanceofvar getDataType = function(o){ if(o===null){ return null; } if(o instanceof Array){ return Array }else if( o instanceof Object ){ return Object; }else{ return param is no object type; }};

补充let,var,const区别

三者都是定义变量,var/let 定义可变变量,区别在于,var 会变量提升,var允许重复声明,而let不允许重复声明,具体参看下面示例;const 定义不可变变量

//变量提升console.log(a); // undefinedvar a = 13;var a = 14;// 相当于var a; // 只声明没有赋值,默认为undefinedconsole.log(a);a = 13;//不允许重复声明let a = 12console.log(a)let a = 13 // => 此行出错:SyntaxError: Identifier a has already been declaredconsole.log(a)var a = 12let a = 13 // => SyntaxError: Identifier a has already been declaredconsole.log(a)let a = 13var a = 12 // => SyntaxError: Identifier a has already been declaredconsole.log(a)// const const a = 1;a = 2; // 报错,不可修改const 的值

Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图