1.原始类型
JavaScript共有5种原始类型,如下
boolean 布尔,值为true或falsenumber 数字,值为任何整型或浮点数值string 字符串,值为单引号或双引号括出的单个字符null 空类型,该原始类型仅有一个值:nullundefined 未定义,该原始类型仅有一个值:undefined(undefined会被赋值给一个还没有初始化的变量)
前3种类型(boolean,number和string)表现的行为类似,而后两种(null和undefined)则有一点区别
一般用typeof操作符判断变量类型
注意:typeof判断引用类型的数据,除了Function返回function其他都返回object
var num = 10;var str = "hello world";var b = true; /* boolean true false *//* typeof 操作符去判断 */console.log(typeof num)console.log(typeof str)console.log(typeof b)/* typeof 操作符可能的返回值undefined------如果这个值未定义boolean ------如果这个值是布尔值string ------如果这个值是字符串number ------如果这个值是数值object ------如果这个值是对象或nullfunction ------如果这个值是函数*/
2.引用类型
JavaScript中引用类型有Array、Date、Function、Object、Error、RegExp
引用类型的值是保存在内存中的对象中,与其他语言不同,JavaScript不允许直接访问内存中的位置,也就是说不能直接操作对线的内存空间,在操作对象时,实际上是在操作对象的引用而不是实际的对象。
数组
/* 1.声明一个数组 */var arr = ["html","css","js"];/* 2.Array.isArray() 判断一个对象是不是一个数组 */console.log(Array.isArray(arr))console.log(arr instanceof Array);/* 3.读取数组的值 */console.log(arr[0])console.log(arr[2])/* 4. length属性可以获取数组的长度 */console.log(arr.length)/* 5.获取数组的最后一位的值 */console.log(arr[arr.length-1])
数组的添加和删除
//1.push():栈方法,在数组最后面插入项,返回数组的长度数组改后的长度 = 数组.push(元素);//2.pop():取出数组中最后一个元素,返回被删除的元素被删除的元素 = 数组.pop(); //注意括号里不含参数//3.unshift():队列方法,在数组最前面插入项,返回数组长度//4.shift():取出数组中的第一个元素,返回被删除的元素
函数
函数是封装一个特定功能的代码块,函数不调用不会执行
var go = function(x){console.log(x)}go(20);
对象
/* json对象 key,value的形式出现的 */var cheng = {"name":"chengchao",age:20,sex:"男"}/* 2.读取对象属性的值 */console.log(cheng.name)/* Tip:如果属性名是变量的情况下,使用中括号去读取 */console.log(cheng["name"])/* 3.给对象新添加一个属性 */cheng.love= "看电影"console.log(cheng)/* 4.读取对象所有的属性 Object.keys(obj)*/console.log(Object.keys(cheng))/* 5.读取对象所有的value值 Object.values(obj) */console.log(Object.values(cheng))/* 6.for in遍历对象 */for(var k in cheng){console.log(k); //这里打印的是keyconsole.log(cheng[k]); //这里打印的是value(用到了2中的tip)}
3.全局变量和局部变量
全局变量:可以在脚本中的任何位置被引用。一旦你在某个脚本里声明了一个全局变量,就可以从这个脚本中的任何位置(包括函数内部)引用它。全局变量的作用域使整个脚本。
局部变量:只存在于声明它的那个函数的内部,在那个函数的外部是无法引用它的。局部变量的作用域仅限于某个特定的函数。
函数中引用了全局变量
var a=10;function go(){a=20; //这里直接写a=20是引用了全局变量areturn a;}b = go();console.log("a="+a);console.log("b="+b);
输出结果
把这个函数写成这样才正确
var a=10;function go(){var a=20; //加上var之后,函数里的a就是局部变量,和外面的a没关系return a;}b = go();console.log("a="+a);console.log("b="+b);
输出结果
