zoukankan      html  css  js  c++  java
  • 变量常量和数据类型

    变量:值可以改变

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

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

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

  • 相关阅读:
    JFinal连接多个数据库
    ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061) net start mysql服务名无效
    oracle中文显示为问号
    IDEA开发环境的设置约定
    WSL distro导入导出
    Linux服务器的x11图形模式方式远程管理参考
    WSL Linux 的 Windows 子系统[笔记]
    devops-cd之esxi和docker实战
    devops-cd之vagrant virtualbox实战
    ansible高级使用知识点
  • 原文地址:https://www.cnblogs.com/zmlAliIqsgu/p/13257940.html
Copyright © 2011-2022 走看看