原生js(二)--- 变量类型运算符

JavaScript引入方式

内嵌

<script>
        document.write('hello,javascript!');
</script>

引入文件

<script type="text/javascript" src="js文件位置"></script>

js基本语法

变量声明 var


    var a;
    //声明变量
    var b,
    c = 0,
    d = true;
    //同时声明多个变量并可赋初始值
    a = 'hello,javascript!';
    //变量赋值
    document.write(a);
    //使用变量

变量类型

  • 原始值:Number String Boolean undefined null(栈数据)
  • 存储在栈区的数据,无法添加、删除属性,如果直接赋值给另一个变量,两个变量互不影响,修改其中任意一个变量的值,都对另一个变量的值无影响。
    var a = 10;
    //变量的类型按赋值的类型决定的,a 为Number。  
    var b = a;
    //变量的类型按赋值的类型决定的,a 也为Number。  
    a = 20;  
    document.write("a的值:" + a + "<br/>");  
    document.write("b的值:" + b + "<br/>");  
    //a的值:20  
    //b的值:10  
    //原始值变量存储空间是相互独立的,修改 a 变量的值,不会影响 b 变量的值。
  • 引用值: Object(堆数据)
  • 引用类型的变量存储的是指向存储空间的地址,多个引用类型的变量可以指向相同的存储空间
    相当于一个人(存储空间)有多个联系方式(引用值变量),通过不同的联系方式(指针)都可以找到这人(存储空间)
    修改和删除引用值相当于修改的地址
  var a = [1,2,3,4];
  //变量的类型按赋值的类型决定的,a 为Array。  
  var b = a;
  //变量的类型按赋值的类型决定的,b 为Array并与 a 指向相同的存储空间。  
  a.push(5);
  //通过变量 a 向存储空间添加数据。  
  document.write("a的值:" + a + "<br/>");  
  document.write("b的值:" + b + "<br/>");  
  //a的值:1,2,3,4,5  
  //b的值:1,2,3,4,5  
  //引用值变量存储的是存储空间的地址,修改变量 a 的值,也就是修改了存储空间中的值,因为 b 的存储空间与 a 相同所以值也变更。
堆栈

两者都是存放临时数据的地方。
栈是先进后出的,就像一个桶,后进去的先出来,它下面本来有的东西要等其他出来之后才能出来。
堆是在程序运行时,而不是在程序编译时,申请某个大小的内存空间。即动态分配内存,对其访问和对一般内存的访问没有区别。对于堆,我们可以随心所欲的进行增加变量和删除变量,不用遵循次序。
栈区(stack) 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。
堆区(heap) 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。
堆(数据结构):堆可以被看成是一棵树,如:堆排序;
栈(数据结构):一种先进后出的数据结构。

  • 在这里插入图片描述

变量命名规则

+ 变量首字母以英文字母、_(下划线)、$ 开头。
+ 变量可以包含英文字母、_(下划线)、$ 、数字。
+ 不能以JavaScript的关键字、保留字命名变量。
+ 下表是js中的一些关键字和保留字
  • js关键字和保留字

运算符类型

算数运算符
+ - * / % ++ --
+的作用:数字相加运算,字符串连接,任何数据类型+字符串都会转成字符串
0作为一个数学运算中的基本符号,在计算机程序中也大量被使用,最基本的就是提高运算优先级
赋值运算符
= += -= *= /= %=
赋值运算符(=)的优先级最低 ()优先级最高
    //运算符运用,确定不了优先级时,用()提升表达式优先级(推荐)。
    var d = 10;
    var e = 10;
    document.write("++d:" + (++d) + "<br/>");

-------分割线--------

    var a = 123;
    var b = 234;
    a = a + b;
    b = a - b;
    a = a - b;
    document.write("a:" + a + " b:" + b);
比较运算符
= == === != < <= > >=
    var sp = ",";        //输出时用于分割
    var a = "10" > "2";  //字符串顺序比较各位字符的ASCII码
    var b = 10 > 2;
    var c = 10 == 2;
    var d = 10 != 2;
    var e = Infinity == Infinity;  //无穷大比较
    var f = NaN == NaN;            //非数比较特殊,自己不等于自己
    var g = null == null;
    var h = undefined == undefined;
    document.write(a,sp,b,sp,c,sp,d,sp,e,sp,f,sp,g,sp,h);
逻辑运算符
+ && || !
    //逻辑运算符&&:左面表达式如果为真,返回右面表达式的值,否则返回左面表达式的值。
    //undefined, null, NaN, "", 0, false 都为假;
    var sp = ",",
        a = 1 && 2,
        b = 1 && 0,
        c = 1 && true,
        d = 1 && false,
        e = 0 && 2,
        f = 0 && 0,
        g = 0 && true,
        h = 0 && false; 
    document.write(a,sp,b,sp,c,sp,d,sp,e,sp,f,sp,g,sp,h);
    //逻辑运算符||:左面表达式如果为真,返回左面表达式的值,否则返回右面表达式的值。
        a = 1 || 2;
        b = 1 || 0;
        c = 1 || true;
        d = 1 || false;
        e = 0 || 2;
        f = 0 || 0;
        g = 0 || true;
        h = 0 || false;
    document.write(a,sp,b,sp,c,sp,d,sp,e,sp,f,sp,g,sp,h);
    //逻辑运算符!:把表达式转成Boolean类型并取反。
    document.write(!a,sp,!b,sp,!c,sp,!d,sp,!e,sp,!f,sp,!g,sp,!h);
位运算符
基本不用  就不写了   
三目运算符
?:
    var a = 8;
    var b = 2;
    document.write(a > b ? a - b : b - a);
    //如果 a 大于 b,则执行 a - b,否则执行 b - a。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值