变量常量和数据类型

变量:值可以改变

定义变量:
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}

内存泄露 不断的创建新对象,不使用的旧对象不清除

垃圾回收机制 当对象的引用在栈中没有引用时,内存占比过高时,垃圾回收车会将其清除

posted @ 2020-07-06 22:13  阿狸i  阅读(280)  评论(0编辑  收藏  举报