JavaScript数据类型
基本数据类型:Undefined,Null,Boolean,Number,String。
复杂数据类型:Object。
1.Undefined
这个类型只有一个值是undefined,使用var声明了 但是没有赋值的变量
var message; alert(message == undefined) // true typeof message // "undefined"
2.Null
这个类型只有一个值是null,标示一个空的对象指针。
var message = null; typeof message; // "null"
3.Boolean
这个类型的值有两个 true 和 false 是区分大小写的
// 转换为true的值 var value = true; var value2 = "hello world"; // 任何非空字符串 var value3 = 1; // 任何非零数字 var value4 = {}; // 任何对象 包括function,Object if (value & value2 & value3) { alert("value is true"); } // 转换为 false 的值 var value = false; var value2 = ""; // 空字符串 var value3 = 0; // 0或NaN var value4 = null; // null var value5 = undefined; // undefined if (value & value2 & value3 & value4) { // 不会进来 } else { alert("value is false"); } typeof true; // "boolean"
4.Number
var octalNum1 = 070; // 八进制56 var octalNum2 = 079; // 无效的八进制——79 var octalNum3 = 08; // 无效的八进制——8 // 在严格模式下以上赋值是无效的 回导致浏览器抛出异常 var hexNum1 = 0xA; // 十六进制的10 var hexNum2 = 0x1f; // 十六进制的31
4.1 浮点数值
小数点后边必须包含一位数字
var floatNum1 = 1.1 或 var floatNum2 = 0.1
用e表示法表示数值
var floatNum = 3.125e7; // 31250000
浮点数值最高精度是17位小数
// 浮点预算会失去精度 var a = 0.2; var b = 0.3; a + b; // 0.50000000000000004
4.2 数值范围
最小数值保存在 Number.MIN_VALUE中,值为 5e-324,最大数值保存在 Number.MAX_VALUE 中,值为1.7976931348623157e+308。
如果计算数值超出了数值范围,这个值会被自动转成Infinity值。可以用isFinite()函数检测是否超出数值范围
var num = Number.MAX_VALUE + Number.MAX_VALUE; // Infinity isFinite(num); // false
4.3 NaN
NaN,表示非数值(Not a Numer)是一个特殊数值,计算导致错误时会返回NaN。
全局函数isNaN(),接受任何参数来判断这个参数“不是数值”。
两个特性:任何涉及NaN的操作都会返回NaN,NaN与任何值都不相等。
NaN/10; // NaN NaN == NaN; // false isNaN(NaN); // true isNaN(10); // false (是一个数值) isNaN("10"); // false (可以转换成数值) isNaN("name"); // true (不能转换成数值) isNaN(true); // false (可以转换成数值1)
4.4 数值转换
有3个函数把非数字转换成数字,Number(),parseInt(),parseFloat()。
// Number() var num1 = Number("hello world"); // NaN var num2 = Number(""); // 0 var num3 = Number("00011"); // 11 var num4 = Number(true); // 1 var num5 = Number(false); // 0 // parseInt() var num1 = parseInt("1234hello world"); // 1234 var num2 = parseInt(""); // NaN var num3 = parseInt("0xA"); // 10(十六进制数) var num4 = parseInt(22.5); // 22 var num5 = parseInt("70"); // 70 var num6 = parseInt(true); // NaN var num1 = parseInt("10", 2); // 2 (按二进制解析) var num2 = parseInt("10", 8); // 8(按八进制解析) var num3 = parseInt("10", 10); // 10(按十进制解析) var num4 = parseInt("10", 16); // 16(按十六进制解析) // parseFloat() var num1 = parseFloat("1234hello world"); // 1234 var num2 = parseFloat("0xA"); // 0 var num3 = parseFloat("22.5"); // 22.5 var num4 = parseFloat(22.34.5); // 22.34 var num5 = parseFloat("0908.5"); // 908.5 var num6 = parseFloat("3.125e7"); // 31250000
5. String
String类型用于表示有零或多个16位Unicode编码组成的字符序列,即字符串。
5.1 字符字面量
- \n // 换行
- \t // 制表
- \b //退格
- \r //回车
- \\ //进纸
- \' //单引号(‘)
- \" //双引号(“)
- \xnn //以十六进制代码表示的一个字符
- \unnn //以十六进制代码表示的一个Unicode字符
5.2 字符串的特点
var lang = "java"; lang = lang + "Script"; // "javaScript" lang = lang + 1.8; // "java1.8" lang = lang + null; // "javanull" lang = lang + undefined; // "javaundefined" lang = lang + true; // "javatrue"
5.3 转换为字符串
var str = "hello world"; var num = 10; var bool = true; var func = function(){}; var obj1 = {}; var obj2 = new Object(); var arr1 = []; var arr2 = ["a","b"]; str.toString(); // "hello world" num.toString(); // "10" bool.toString(); // "true" func.toString(); // "function(){}" obj1.toString(); // "[object Object]" obj2.toString(); // "[object Object]" arr1.toString(); // "" arr2.toString(); // "a,c" var value1 = 10; var value2 = true; var value3 = null; var value4 = ; String(value1); // "10" String(value2); // "true" String(value3); // "null" String(value4); // "undefined"
6.Object
创建Object类型的实例
// 字面量方法 var o1 = {}; // new 操作符创建 var o2 = new Object();
每个Object实例对象都有下列属性和方法:
- constructor: 保存着用于创建对象的函数 —— Object()。
- hasOwnProperty(propertyName):检车给定的属性是否存在当前对象的实例中(不是原型中)
var O = { "name": "zhang san", "age": 25 }; O.hasOwnProperty("name"); // true
- isPrototypeOf(object):用于检查一个对象是否存在于另一个对象的原型链上。
// 定义函数对象 function Foo() {} function Baz() {} // 继承Foo的原型 Baz.prototype = Object.create(Foo.prototype); // 创建一个新对象 var baz = new Baz(); // 检查baz是否继承自Foo Foo.prototype.isPrototypeOf(baz); // true
- propertyIsEnumerable(propertyName):用于检查给定属性是否能用for-in语句来枚举。
var o = {}; var a = []; o.prop = 'is enumerable'; a[0] = 'is enumerable'; o.propertyIsEnumerable('prop'); // true a.propertyIsEnumerable(0); // true a = ['is enumerable']; a.propertyIsEnumerable(0); // 返回 true // 内置对象的属性不能被枚举 Math.propertyIsEnumerable('random'); // 返回 false /***********************自身属性和继承属性****************************/ // 自身属性不能被枚举 var a = ['is enumerable']; a.propertyIsEnumerable('constructor') // 返回 false a.propertyIsEnumerable('length'); // 返回 false function firstConstructor() { this.property = 'is not enumerable'; } firstConstructor.prototype.firstMethod = function() {}; function secondConstructor() { this.method = function method() { return 'is enumerable'; }; } secondConstructor.prototype = new firstConstructor; secondConstructor.prototype.constructor = secondConstructor; var o = new secondConstructor(); o.arbitraryProperty = 'is enumerable'; o.propertyIsEnumerable('arbitraryProperty'); // 返回 true o.propertyIsEnumerable('method'); // 返回 true o.propertyIsEnumerable('property'); // 返回 false o.property = 'is enumerable'; o.propertyIsEnumerable('property'); // 返回 true // 这些返回fasle,是因为,在原型链上propertyIsEnumerable不被考虑 // (尽管最后两个在for-in循环中可以被循环出来)。 o.propertyIsEnumerable('prototype'); // 返回 false (根据 JS 1.8.1/FF3.6) o.propertyIsEnumerable('constructor'); // 返回 false o.propertyIsEnumerable('firstMethod'); // 返回 false
- toLocaleString(): 返回调用 toString() 的结果。
- toString(): 返回对象的字符串表示
- valueOf():返回对象的字符串,数值或布尔值表示,通常与toString()返回值相同。
—— 完
相关推荐
接着,JavaScript有六种主要的数据类型,分为两大类:基本数据类型和引用数据类型。基本数据类型包括: 1. **String**(字符串):用于表示文本,用单引号或双引号包围。 2. **Number**(数值):包括整数和浮点数...
2. **数据类型**:JavaScript支持七种数据类型,包括基本类型(Boolean、Null、Undefined、Number、BigInt、String和Symbol)和引用类型(Object)。特别是Number类型,要了解其浮点数的精度问题和处理大整数的方法...
第六课的数据类型主要涵盖了JavaScript中的基本数据类型,包括Undefined、Boolean、Number以及相关的数值转换。以下是这些知识点的详细说明: 1. **typeof 操作符**: `typeof` 是用于检测变量类型的运算符,返回...
JavaScript中的六大数据类型分为两大类:基本数据类型(原始数据类型)和引用数据类型。 1. 基本数据类型(Primitive Data Types) - Number:包括整数和浮点数。浮点数可能会因为精度问题导致计算结果不精确,...
数据类型包括了JavaScript中的原始类型(如字符串、数字、布尔值、null和undefined)以及复杂类型(如对象和数组)。书中还介绍了变量的作用域、提升、闭包以及各种数据类型的转换和操作。 客户端JavaScript部分...
- **概述**:JavaScript的数据类型分为两类:基本类型(值类型)和引用类型(对象类型)。 - **基本类型**:包括字符串(`string`)、数字(`number`)、布尔值(`boolean`)、`null`、`undefined`和`symbol`。 - *...
js六大数据类型:number、string、object、Boolean、null、undefined string: 由单引号或双引号来说明,如”string” number:什么整数啊浮点数啊都叫数字,你懂的~ Boolean: 就是true和false啦 undefined:未定义...
1. **变量与数据类型**:JavaScript是一种动态类型语言,允许声明变量时不用指定类型。书中会介绍基本数据类型(如String、Number、Boolean、Null、Undefined)和复杂数据类型(如Object和Array)。 2. **作用域与...
本文旨在深入解析JavaScript对象模型的关键概念,包括基本数据类型、对象、函数及其内部实现原理。 #### 二、基本数据类型 在JavaScript中,基本数据类型是最底层的实现形式。主要包括以下几种: - **Undefined**...
JavaScript中的数据类型是理解编程语言基础的关键,而在JavaScript学习中,JSON格式的使用同样不可或缺。JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,它基于JavaScript的一个子集,采用完全...
书中首先讲解了JavaScript的基础,包括变量、数据类型、运算符、流程控制语句、函数和对象。这些基本概念是理解JavaScript程序设计的基础,也是初学者入门的必学内容。 接着,书中深入讨论了JavaScript的对象模型,...
变量是存储数据的容器,JavaScript支持六大数据类型:Undefined、Null、Boolean、Number、String和Symbol(ES6新增)。控制结构如条件语句(if...else)、循环(for、while)用于控制程序的流程。函数是一组有序指令...
十、JavaScript 的基本数据类型及常量 Number(数字类型) * 整型常量(10 进制\8 进制\16 进制) * 实型常量 12.32、193.98、 5E7、4e5 等 * 特殊数值:NaN、Infinity(除数为零),所对应的判断函数 isNaN()、is...
资源名称:...第二部分“Javascript编程”,包括第4章到第7章,介绍了Javascript的数据类型,例如数值、字符串和数组;以及较为复杂资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
它支持基本数据类型(如字符串、数字、布尔值)以及引用类型(如对象和数组)。了解这些基础知识是编写JavaScript代码的前提。 2. **控制流**:包括条件语句(如`if...else`,`switch`)和循环(如`for`,`while`,...
JavaScript的基础包括变量、数据类型、操作符、流程控制(条件语句和循环)、函数、对象和数组等。其中,动态类型的特性使得JavaScript具有很高的灵活性,但同时也可能带来一些陷阱,如隐式类型转换。理解JavaScript...
- **自动类型转换(向上转型)**:当较小的数据类型赋值给较大的数据类型时,会自动进行类型提升。例如,byte、short、char可以自动转换为int,int可以转换为long,float和long可以转换为double。 ```java byte...