03js数据类型

一、typeof操作符

     一个用来判断数据类型的操作符。

     but!typeof只能准确的判断简单数据类型和function(检测null时会返回object)

var nickname = 'chonger';
//打印变量nickname的数据类型:
colsole.log( typeof nickname );//String

二、基本(简单)数据类型

     保存在栈内存里

1.字符串String

     需要用引号括起来,双单皆可。”“ ’‘

     双引号和单引号都不能包含自己,但是双引号可以包含单引号。

     此时,如果输出的结果需要引号时,涉及到转义字符

str = "我说:"你好!"";❎
str = "我说:\"你好!\"";✅
str = "我说:'你好!'";
转义字符
转义序列字符
\b退格
\f换页
\n换行
\r回车
\t制表符
单引号
"双引号
\反斜杠

​     当字符串太长时,为了方便阅读,可以进行换行处理,但是不可以直接按enter键,否则会报错。此时可以使用**+**来连接两个字符串

var poem;
poem = "生如夏花之绚丽"+
    "死如秋叶之静美"+
    "还在乎拥有什么";
//这里只是代码格式时的换行,若是要在浏览器中换行显示,则用换行符\n
2.数值Number
  1. 包括整数和浮点数。保存浮点数值需要的内存空间时保存整数的两倍。

  2. 数字的最大值(最大正数):Number.MAX_VALUE = 1.7976931348623157e+308

  3. 数字的最小值(最小正数):Number.MIN_VALUE = 5e-324

  4. 若数值超过其最大值,则显示Infinity(无穷),加负号则为负无穷。正无穷和负无穷是无法参与运算的。

    如何判断一个数字是否超出了最大值和最小值呢?

    //Finite -> 有限的
    let num_ten = 5
    isFinite(num_ten)//true 表示没有超出
    let num_eleven = 2e308
    isFinite(num_eleven)//false 表示超出
    
  5. NaN是个特殊数字,NaN = not a number。任何涉及NaN 的操作(例如 NaN/10)都会返回 NaN,其次,NaN 与任何值都不相等,包括 NaN本身

  6. js中整数运算基本保证准确,浮点数运算可能会得到不精确的结果。

3.布尔值Boolean

true false

用来逻辑判断。注意都是小写,大写的TrueFalse并不是布尔值。

4.空值Null
  1. 只有null一个值,用来表示一个空的对象(空对象指针)。

  2. 使用typeof 检查数据类型时,会返回Object

  3. 如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null。这里一来,只要检查null值就可以知道相应的变量是否已经保存了一个对象的引用。

5.未定义Undefined

​ 当声明变量,却并未赋值时,表示undefined(只有这一个值)

var message ;
console.log(message);//此时打印出的值是undefined

​ 事实上,undefined是派生自null的,因此下边的操作是正确的。

console.log(null == undefined);//true

三、引用数据类型(复杂)

对象object

​ 包括对象object、数组Array、函数Function

​ 所有变量都保存在内存里–>堆内存(保存地址)

Object类型

​ 表示存储任意多的值,对数据类型没有限制。

(1)构造实例

①使用new操作符后跟object构造函数

var person = new Object();
person.name = "chongEr";	//字符串类型
person.age = 18;		//Number
person.hobby = null;	//Null
person.student = true;	//Boolean
person.classmate{		//对象
    nickName : 'xiaoming',
       age :18 
}

②使用对象字面量表示法,目的在于简化创建包含大量属性的对象的过程。

//创建一个person对象
var person = {//左边的{表示对象字面量的开始,就是一个容器,把多种类型的值放在一个变量里
    name : "chongEr",//属性名: 属性值,<使用逗号来分隔不同的属性>
    age : 18//属性名: 属性值(属性名不要用数字)
};
//这里的属性名也可以使用字符串
var person = {
    "nickName" : "chonger",
    "age" : 18
}
(2) (查)访问对象属性表示的办法

点表示法:对象.属性名

var person = {
    "nickName" : "chonger",
    "age" : 18
}
console.log(person.age);//18

方括号:对象[‘属性名’]

     方括号语法的主要优点是可以通过变量来访问属性,如果属性名中包含会导致语法错误的字符,或者属性名使用的是关键字或保留字,也可以使用方括号表示法。

alert(person ["name"]);//对象['属性名']

var person = {
    "nickName" : "chonger",
    "age" : 18
}
var propertyName = "nickname";
alert(person[propertyName]);//chonger<--通过变量来访问属性

//下方例子里,first name中包含一个空格,就不能使用点表示法来访问他
person["first name"] = "Nicholas";
(3) 增删改
var person = {
    "nickName" : "chonger",
    "age" : 18
}
//增加一个属性
person.sex = "girl";//.会把sex转化成为字符串
person['hobby'] ='null'; //[]不会进行转化,写什么就是什么
console.log( person );
//删除一个属性
delete person.hobby;
console.log( person );
//修改一个属性
person.age = 19;
console.log( person );
Array数组

​ 数组的写法是一个中括号 :[]

​ 数组里边可以存储任意类型的数据(简单数据类型和所有复杂数据类型),每个值之间用逗号隔开,可以写无数个值。

​ ECMAScript 数组的大小是可以动态调整的,即可以随着数据的添加自动增长以容纳新增数据。

(1)构造实例

①使用Array构造函数

//构造Array函数
var colors = new Array();
var colors = Array();//new可以省略
//可以给构造函数传递该数组的数量
var colors = new Array(3);//表示创建一个length为3的数组
//也可以向 Array 构造函数传递数组中应该包含的项
var colors = new Array("red", "blue", "green");

②数组字面量表示法:[任意值1,任意值2,任意值3,任意值4…]

var colors = ['red','blue','green'];//创建一个包含3个字符串的数组
var names = [];//创建一个空数组
var values = [1,2,];//不要这样!这样会创建一个包含2或3项的数组
var options = [,,,,,]//不要这样!这样会创建一个包含5或6项的数组
//数组中套对象
var students ={
    {name:'liBai', sex:'boy',age:10},
    {name:'wangZhaoJun', sex:'girl', age:10},
    {name:'luban7hao',sex:'boy',age:3}
}
colsole.log(students);
console.log(students[1]['age']);//10
(2)增删改查
var colors = ['red','blue','green'];
//新增第四项,第五项
colors[3] = "brown";
colors[arr.length] = '我是新增色';
console.log(colors);//可以访问数组长度,此时数组有五项
//删除
colors.length = 4;//将会删除最后一项
	//如果想删除数组首项或中间某一项,则👇
delete colors[2];//表示想删除"green"
cosole.log(colors);//但是,数组长度依然不会变,只是color[2]变成了empty(空)(相当于只是删除了值)
//修改
colors[1] = 'yellow';//修改blue为yellow
//查(访问)
colsole.log(colors[0]);//打印第一项:red
Function函数

     function代表要声明一个函数。通俗来讲,函数就相当于一个工厂,将某些东西放进去加工后,再吐出来加工后的产物,用来实现某个功能。

(1)声明函数
function some(){
    console.log(1);//在后边加括号不报错的都是函数
}
//①函数声明:
function sum (num1 , num2){
    return num1 + num2;
}
//②用函数表达式定义函数(不推荐<--两次解析代码,影响性能)
var sum = function(num1 +num2){
    	//定义了变量sum并将其初始化为一个函数
    return num1 + num2;
};//注意这里的分号还要写,就像声明其他变量一样

(2)函数调用
function some(){
    console.log(1);//此时控制台上并不会打印出1
}
some();//此时运行some函数里边的代码

function some2(abc){
    console.log(abc);
}
//函数可以无数次调用
some2 = ('露娜');
some2 = ('公孙离');
(3)实参形参
//实参-->传递给函数的东西
function some1(){
	console.log('我是some1函数');
}
//形参-->函数中的变量
function factory(abc){//abc就是形参
    var abc = '皮皮虾';
    console.log(abc); 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值