网站首页 > 知识剖析 正文
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"; // 为数组第一项赋值
or
let arr = ["Saab"]
// 对象定义与数组类似
let arr = {};
or
let arr = new Object();
cars['name']="Saab"; // 为对象添加key-value
or
let arr = {name: "Saab"}
变量的数据类型可以使用 typeof
typeof "leo" // 返回 string
typeof 2.67 // 返回 number
typeof true // 返回 boolean
typeof ["Q", "C"] // 返回 object
typeof {name:'leo', age: 17} // 返回 object
typeof function(){} // 返回 function
typeof 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,constructor
var arr = [1,2,3,1];
console.log(arr.constructor === Array); // true
3,Object.prototype.toString
function isArrayFn (o) {
return Object.prototype.toString.call(o) === '[object Array]';
}
var arr = [1,2,3,1];
console.log(isArrayFn(arr));// true
4,es5 新增Array.isArray()
var arr = [1,2,3,1];
console.log(Array.isArray(arr));// true
// 补充几个判断 null/object/array 的工具类
// 通过 typeof
var 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';
}
}
// 通过instanceof
var 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); // undefined
var a = 13;
var a = 14;
// 相当于
var a; // 只声明没有赋值,默认为undefined
console.log(a);
a = 13;
//不允许重复声明
let a = 12
console.log(a)
let a = 13 // => 此行出错:SyntaxError: Identifier 'a' has already been declared
console.log(a)
var a = 12
let a = 13 // => SyntaxError: Identifier 'a' has already been declared
console.log(a)
let a = 13
var a = 12 // => SyntaxError: Identifier 'a' has already been declared
console.log(a)
// const
const a = 1;
a = 2; // 报错,不可修改const 的值
- 上一篇: 【JS ==的转换规则】==符号运算符的转换规则
- 下一篇: JavaScript基础知识点总结
猜你喜欢
- 2024-12-03 65.3k star,一款将文本转换为 SVG 图表的利器:Mermaid.js
- 2024-12-03 JavaScript的基本数据类型如何使用?
- 2024-12-03 Node.js支持原生运行TypeScript——自动将TS代码转译为JS代码
- 2024-12-03 2024年,你需要掌握的 30 个 JavaScript 面试问题和答案(基础篇)
- 2024-12-03 JavaScript基础知识点总结
- 2024-12-03 【JS ==的转换规则】==符号运算符的转换规则
- 2024-12-03 JavaScript是一种什么语言?——JS的概念、特点、使用及执行顺序
- 2024-12-03 javascript类型转换中需要注意的坑
- 2024-12-03 系列专栏(八):JS的第七种基本类型Symbols
- 05-05vin码怎么查车型?车辆VIN码的第十位代表什么信息?
- 05-05Java数组数据的操作之检查日期格式是否正确
- 05-05苹果序列号怎么看生产日期和产地?
- 05-05参考文献中的M J N D字母代表什么?
- 05-05闲鱼交易技巧,满满的干货(闲鱼的交易流程怎么样的?我是买家)
- 05-05忘记自已多少岁了?可试试年龄计算器
- 05-05汽车-剖析、解析车架号(VIN)中的第10位-车型年份
- 05-05干货|史上最全波特酒年份指南(波特酒 年份)
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)