使用关键字typeof可以查看变量的数据类型:
typeof 变量名
typeof(变量名)
简单数据类型:(值类型,四种)
1.字符串 String
在内存中不会立刻消失,只能二次赋值,原有的字符在一定时间之后,会被垃圾回收器回收
2.数字 Number
无穷大:Infinity 无穷小:-Infinity
NaN 非数值(Not a Number)undefined和任何数值计算为NaN;
NaN与任何值都不相等,包括它本身
isNaN();判断是否不是数值,如果不是,返回true,如果是,返回falseisNaN(NaN);//true
isNaN("xixi");//true
isNaN(123);//false
3.布尔 Boolean
只有两个值:true/false(区分大小写,只能是小写字母)
4.未定义 undefined
5.空 null(不属于简单数据类型,但可以与undefined对比学习)
复杂数据类型:(引用类型)
1.对象 Object
2.函数 Function
3.数组 Array
……
二、数据类型转换
1.转换为String
方式一:使用“+”号连接符连接一个字符串
方式二:使用toString()方法
方式三:String(变量)
2.转换为数字
注:容易出现NaN 需要字符串一般为数值类型的
方式一:字符串-0(减号)
方式二:字符串/1 字符串*1
方式三:Number("18") 把字符变成数字18,小数也可以转换
方式四:parseInt()方法 取出首个非数字前的整数
parseFloat() 可以取小数
3.转换成布尔类型
Boolean(变量)
三、与Java语言中类似的部分
1.操作符:与Java中的类似,省略
2.流程控制:
if语句
switch语句
3.循环控制:
for循环
while循环
do...while循环
4、函数
第一种定义方式:
function 函数名(参数列表){ 函数体 }
第二种定义方式,匿名函数:一般用于事件绑定
var fn = function(){ 函数体 }
第三种定义方式:
var fn = new Function(函数体);
注:第二、三两种方式定义的函数必须在使用前定义
函数调用 :
函数名(参数列表);
注:如果给的实参个数大于函数本身形参个数,会忽略多余的实参,函数照常执行
JS中没有函数重载!!!
函数的返回值:
给函数加上return语句,如:return 0; 那么此函数的返回值就为0
如果没有return或者只有return,没有写值,那么返回值都为undefined
在控制台会打印整个函数
console.log(函数名);
打印函数的返回值
console.log(函数名(参数列表));
JS在加载的时候,只加载函数名,不加载函数体
函数的递归调用:
其实就是函数自己调用自己,但必须有跳出条件,不然是死循环!
回调函数:(就是把函数当参数传递)
function fn(函数名){
函数名();
}
5、变量
局部变量
注:函数内部用 var定义的变量是局部变量全局变量
注:如果在函数内部没有用var声明的变量,如 num = 3 ; 为全局变量
隐式全局变量:
function fn(){
var a = b = c = 1; //b和c都为全局变量
var a = 1; b = 2; c = 3; //用分号间隔,实际上代表了三行代码,b、c为全局变量
var a = 1, b = 2, c = 3; //用逗号间隔,代表一行代码,a、b、c都为局部变量
}
6、预解析
1.产看语法是否错误
2.变量声明提升以及函数整体提升(有名函数)。意思就是把变量声明和函数放到代码的最前面
注:只提升变量名,不包含其定义的值。函数是整体提升
注:预解析在函数范围内同样适用
7、创建对象
Java就是很好的面向对象语言
JS是基于对象开发的语言,只能new Object对象
var student = new Object(); //创建空白对象
student.name = "笑笑"; //设置属性
student.age = 18;
student.sleep = function(){ //书写方法
console.log("睡觉了。。。");
}
console.log(student.name); //使用属性
console.log(student.age);
student.sleep(); //调用方法
创建对象方式二:
var student = {
name:"笑笑",
age:10,
sleep:function(){
console.log("睡觉了。。。");
}
};
console.log(student);
student.sleep();
new后面调用函数,称为构造函数,如:new Object(); Object视为一个构造函数,其实就是一个函数,目的是为了创建新的对象,为新对象进行初始化
对象的字面量是一对{ },属性与值是以键值对的形式存在的 如{username:"笑笑"}
8、JSON
JavaScript Object Notation(JavaScript对象表现形式)
JSON数据也是一对{ } 属性与值也成键值对的形式,但与对象字面量不同的是,JSON的键要用 "" 括起来, 如{"username":"笑笑"},也就是说,JSON的键必须是字符串,键值对要用逗号分割
注:不能使用for循环遍历
要使用for...in...遍历 例:
for(var k in json){
console.log(k); //打印键
console.log(json[k]);//打印键对应的值
}
9、内置对象
如 Date、Math等