JS变量类型

全局与局部变量

  • 全局变量。

在函数体之外声明的变量,叫做全局变量。
全局变量在浏览器打开的时候分配空间,直到浏览器关闭的时候才会销毁。

  • 局部变量:

在函数体当中声明的变量,叫做局部变量。
局部变量在函数被调用的时候分配空间,函数执行结束之后,内存释放。

var k;//默认值undefined
alert(k)//声明了一个变量,但是没有手动赋值,系统默认赋值undefined
//没有声明这个变量,访同的时侯会报错.

如果一个变量声明的时侯没有使用var关键,这个变量不管是在哪里声明的,都是全局变量。
这种全局变量在声明的时候必须手动赋值,不能采用系统默认值。|

function doSome( ){
//声明变量的时候,没有使用var关健字
email = "zhangsan@123.com" ;
age;
}
//访问email变量
alert ( "email = " + email)//可行
alert("age= " +age)//出错

数据类型

六种数据类型,ES6(ECMAScript6)后有八种

//基本数据类型(原始类型)
Undefined
Number
String
Null	//null这个值是基本数据类型,但是typeof运算符的运算结果是"object

Boolean
//引用数据类型,(对象类型)
Object
//ES6以后的2个新类型(原始类型)
Symbol 
Bigint

动态获取变量类型

typeof 变量名   
返回数据类型字符串(全小写)
"undefined"
"number"
"string"
"boolean"
"object"  //NUll是Null类型是、属于object类型
"function"

判断两字符串是否相同使用双等号“==”

undefined

Undefined类型:
1、只有一个值,它的值就是:undefined
2、当一个变量声明之后没有手动赋值,系统默认赋值undefined

var k = Undefined;   //undefined类型
var e = "undefined"  //字符串类型

Null

Null类型
1、Nul1类型也是属于原始类型。
2、Null类型只有1个值:null
3、注意:typeof null运算结果是;“object”

Number类型

1、Number类型属于原始类型。

2、Number类型有
整数,
浮点数,
NaN	 --》表示Not a Number,表示(运算结果)不是—个数字。
Infinity	-->表示计算结果无穷大。如1/0

函数

isNaN()
返回
true:表示不是一个数字
false:表示是一个数字
这个函数有一个特点,它会首先尝试将“数据""转换成数字,
如果转换失败了,则结果就是true。
如果转换成功了,则结果就是False。
(boolean可转为数字,'123'也可转为数字)
Number()
将不是数字的类型转化为数字类型
Number(true)==1
Number('12')==12
Number('三')==NaN
parseInt()
小数点前转换为数字,只取整数位。
parseInt('123.21后面是什么都行')==123
Math.ceil()
向上取整

Boolean类型

1、 Boolean类型属于原始类型。
2、Boolean类型只有两个值:true,false,没有其他值。

Boolean()函数
将不是布尔类型的转换成布尔类型。

输入	undefined,0,'',NaN,null会返回false
有东西就是true,没有就是falseJS中隐式调用,例如 if(???),将???转化为boolean型

String

定义字符串

不管是原始类型的字符串,还是object类型的字符串,他们的方法和属性都是通用的。

包括两种方式:
//字符串类型
var s="字符串";
var s='字符串';

//object类型
var s=new String(”宁符串”);

属性与方法

str="string"
常用再性:
str.length属性,获取字符串长度常用方法:
str.charAt(1)方法获取指定下标位宣的字符
str.concat('122')方法连接字符串
indexOf('?')方法获取某个字符串在当前字符串中第一次出现处的索引
lastIndexof(1)方法获取某个字符串在当前字符串中最后一次出现处的索引
replace('s','a')方法替换

split('-')方法拆分字符串,返回数组

substr(23) //rin 方法截取字符串,传入(起始,长度)
substring(23)//r 方法截取字符串,传入(起始,结束(不包括))
toLowerCase()方法转小写
toUpperCase()方法转大写

Object

JS内置了一个类型Object,可看作所有对象的基类

var a= new Object()
默认定义类型为Object
属性:
prototype属性	constructor属性
方法:
toLocalestring方法	 toString方法	valueof方法

prototype属性。〔 prototype翻译为原型〕
可以给对象动态扩展再性和方法。
prototype属性使用
例如:
var o=new Object();
//演示prototype属性
 
Object.prototype.doSome = function(){
	console.log("aaaa")
}
Object.prototype.name='zzl'
//调用doSome方法
o.dosome()	//aaaa
o.name	//zzl
/给string类型的对象扩展一个mysubstr的方法.
String.prototype.mysubstr = function(startIndex,length){
// this表示当前的字符串对象
return this.substr(startIndex,length);
}
console.log( "abedef".mysubstr(2,3)) 
定义类
1、在J5中怎么定义类?包括两种方式
第一种方式:
funetion 类名(形式参数列表)
this.属性名=参数;
this.属性名=参数;
this.方法名= function(){

}

第二种方式:
类名= function(形式参数列表){
this.属性名=参数;
this.属性名=参数;
this.方法名 = function(){

}
}

//既是一个函效,同时又是一个类的定义.
//函数名是:sayHello,类名是: sayHello
function sayHello(){
}
sayHello = function(){
}
//关键看你怎么调用,如果没有使用new运算符调用,表示普通函数调用.不会在堆中new对象.
sayHello();
//使用new运算符去调用这个函数,显然是把它当做一个类来看待,这个会导致浏览器的堆当中开辟一个新对象!\
var obj = new sayHello();

访问一个对象的属性

obj.属性
obj["属性"]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值