变量:值可以改变
定义变量:
var a=4;
var b=5;
c=6;
d=7;
var a=4,
b=5;
使用;结束一个代码语句,使用,则表示没有结束该语句
var a=b=6;
先给a赋值,然后赋值给b
变量名称规则:
1.变量要求小写字母开始,每个单词的首字母大写,叫驼峰式命名。
2.变量不能使用关键字和保留字。 eg:var for; var int;
3.变量尽量不要定义window的属性名,ES5中全局变量都会被设置在window的属性中。
eg: var a=10;
console.log(window.a);
console.log(a+5);
4.临时变量或者参数,起名时使用_开始。
5.尽量不要使用拼音字母和中文。
常量:不希望值改变
常量ES6,常量不能修改
eg:const EVENT_ID="eventid";
EVENT_ID="abc"; //不可以
常量定义后的对象不能够被清楚
const obj={a:1,b:2};
数据类型:字符型,数值型,布尔型,未定义型(underfined),空值(null),对象型(object) ||ES6 Symbol
五种基础类型,一种复杂类型
字符类型:String 所有使用 '' "" ``都是字符型
数值类型:Number 小数叫做浮点数
布尔类型:Boolean ture,false
未定义型 undefined 值和类型相同
空值 null null的类型Object型
如何检验数据类型:可以使用typeof打印
var a="abc";
console.log(typeof a);//string
数值型:
var a=3;
var b=3.1;
var c=-5;
var d=-5.6;
var e=0xFF;//16进制
var f=065;//8进制
var g=3.1e+5;//科学计数法 3.1*10(5)5次幂
var h=3.5e-5;//科学计数法 3.5*10(-5) -5次幂
未定义型:
var a;//仅定义变量未设置值 用于全局定义,然后根据需要时赋值,初始是没有值的
var b=undefined; //定义变量并且设置值为undefined; 用于初始值必须是undefined,或者将原有有值的变量修改为undefined
空值:空值是将所有引用地址标记清空,用于清理内存 垃圾回收
var w=null;
console.log(typeof w);//object
console.log(w===undefined);//false
对象类型:
这个就是对象 {}将内容放在里面,名称叫做属性名,:是区分属性名和属性值的
属性名叫做键(key),属性值叫做值(value) 键值对
对象就是以键值对的形式存储数据
var s="names";
var obj = {
// 属性
id: 1001, //key:value//关键词和值,对象不能出现重复的key,key不需要加""
name: "电脑桌",
price: "700",
[s]:"zhangsan" //变量作为key必须在外层增加[]
getSum: function () {
// 方法
}
};
获取对象中key的值时有两种方法:
一种是点语法,点语法使用范畴仅限于key属性固定,并且明确
另一种是[]语法,如果是固定的key,就使用字符串方式来设定,
如果不固定,直接[变量]就可以
字符类型,数值类型,布尔类型,未定义型都不需要null清除
数据类型的存储:
前五种数据类型都存储在栈中,对象存储在堆中
var obj={a:1};
console.log(String(obj));//[object Object]所有的对象转换为字符串就会变成这样
console.log(JSON.stringgify(obj));//将object对象转换我i字符串(JSON字符串)
console.log(JSON.parse('{"a":1}'));//将JSON字符串转换为对象
变量名存储的是引用地址
var obj={a:1};
var obj2=obj;
obj.a=10;
console.log(obj2.a);// 10
存在栈中,修改的是值
var num=3;
var num1=num;
num=10;
console.log(num1); //3
存在堆中,修改引用地址值的内容,地址不会发生改变
var obj={a:1};
var obj1=JSON.parse(JSON.stringify(obj));
console.log(obj1); //{a:1}