文章目录
1.数据类型复习
1.1 数据类型分类
分为值类型和引用类型
1.值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
2.引用类型包括:引用数据类型:对象(Object)、数组(Array)、函数(Function)。
1.2 两个种类的区别:
简单地说,值类型在栈内存里直接存储数据的值,。而引用类型在栈内存里存储的是对象在堆内存中的地址,即有一个指向堆内存的指针存储在栈内存里。创建方法当然也不一样
//一。创建值类型和引用类型的数字
var a=10
alert(typeof a);//此时i是基本数据类型,等同于值类型(Java中)
var b=new Number(10);
alert(typeof b)//此时i是基本的数据类型,对象类型
如果想更加深入的理解,可以看我的一篇博客(Java中的值类型和引用类型)
等待更新。。。。。。
1.3 理解js里的某种数据的值类型和引用类型(称为包装类)
按道理说,只有对象也就是引用类型的数据可以调用方法,可是我们发现值类型的数据也可以i盗用方法,这是为什么?
//二。普通的数据类型也可以调用方法
alert(a.toString(8))
alert(b.toString(8));
这是因为js中调用值类型变量的方法时,在内存里创建了一个临时的对象,这个对象调用了特定的函数后会立即被销毁。
a.test="test1";//基本类型调用属性或者方法时是创建一个临时的对象,一旦这条语句执行完成,创建的这个对象就会被销毁。
alert("为基本类型创建属性:"+a.test);//原本的对象被销毁
b.test="test2"
alert("为引用类型创建属性:"+b.test)//对象没有被销毁
2 数字类型
2.1 值类型的数字,引用类型数字的创建
1.数字类型的范围
JavaScript 不是类型语言。与许多其他编程语言不同,JavaScript 不定义不同类型的数字,比如整数、短、长、浮点等等。
alert("最大的整数:"+Number.MAX_VALUE);
alert("最小的整数:"+Number.MIN_VALUE);
最大的数字:1.7976931348623157e+308
最小的数字:5e-324
2.值类型的数字和引用类型数字,用对象构造器创建
var x=123;
var y=new Number(123);
3.数字的表示方法
(1)浮点数,浮点数的计算并不准确,这是由于他的存储结构所导致的
(2)整数,
(3)科学计数
var num2=0.1;
var num3=1
var num4=1.2e10;
2.2 数字类型中的一些特殊值
1.不同的数字进制
不同进制数字的表示方法,一般默认就是十进制,,八进制以0o开头,十六进制以0x开头
//不同进制数字的表示方法,一般默认就是十进制,,八进制以0o开头,十六进制以0x开头
var x=10;
var y = 0o10;
var z = 0x10;
2.无穷大
//其他特殊的数字无穷大,超过上限,数字就是无穷大了。JS中数字除以0就是无穷大
alert(2/0)
3.非数字NaN(not a number)可以认为NaN是一种类似于undefined和null的特殊值。
,所有其他类型的对象都有一个属性,例如一个字符串要判断他的内容是不是一个数字,可以通过正则表达式匹配的方法进行判断,也可以通过NaN属性进行判断,或者isNaNf方法进行判断。
alert(isNaN("123"));//false
alert(isNaN("abc"));//true
2.3 常用的数字对象的属性和方法
1.常用属性
2.常用方法
http://www.runoob.com/jsref/jsref-obj-number.html
3.字符串
3.1 值类型的字符串,引用类型字符串的创建
1.创建,可以使用双引号或者单引号
//一。创建字符串和字符串对象
var a="abcdef";
var a2='abcdef'
var b=new String("abcdef");
2.字符串中的转义字符,用于表示字符串里的特殊字符
代码 | 输出 |
---|---|
’ | 单引号 |
" | 双引号 |
\ | 斜杆 |
\n | 换行 |
\r | 回车 |
\t | tab |
\b | 空格 |
\f | 换页 |
例如一种常用的写法,表示双引号里还有双引号,单引号里还有单引号
var d="a\"bc"//在双引号里还有双引号,或者在单引号里还有单引号。
var d='a\'bc'
不可以不用转义字符,因为计算机遇到两个普通的双引号或者两个普通的单引号就直接把中间的字符认为是字符串的内容。但是在双引号里使用单引号可以加\也可以不加,在单引号里使用双引号可以加\也可以不加。
3.2 常用的属性和方法
alert(b.length);//字符串长度
alert(b.indexOf("b"));//获得指定字符串在原本字符串的缩影
alert(b.toUpperCase());//变大写
alert(b.toLowerCase());//变小写
alert(b.replace("a","b"));//替换指定字符
alert(b.split("b"));//分割成指定字符串数组
http://www.runoob.com/jsref/jsref-obj-string.html
3.3 js中多行字符串
1.字符串表示的时候分行,从第二行开始的所有字符都认为是字符,如果第二行开始不是顶格写的会把其中的空格认为是字符串的内容。不是真正意义上的多行字符串。
2.真正意义上的多行字符串,用转义字符\n表示
//三。多行字符串
alert("a\
b\
c")//并不是实际意义的分行字符串,只是分行显示i
alert("a\nb\nc")//利用转义字符实现分行
4.布尔类型
4.1 创建
用其他数据类型创建布尔类型。
字符串为空表示false
数字为0表示false
数组为空表示false
NaN,undefined,null表示false。
其他表示true
http://www.runoob.com/try/try.php?filename=tryjs_boolean
4.2 常用属性和方法
http://www.runoob.com/jsref/jsref-obj-boolean.html
5.null和undefined
null表示创建了一个指针这个指针的指向为空,以后将会把这个指针指向一个对象。
undefined表示创建了一个值类型的数据,数据还没有装入一个值。