JavaScript(二)js引入,变量,值类型,运算符

一.主流浏览器及其内核

 

IE                            trident

Chrome                  webkit/blink

firefox                     Gecko

Opera                      presto

Safari                      webkit

二.如何引入js

1.页面内嵌<script></script>标签

         <script type="text/javascript">

                document.write('hello world!!!');

                
            </script>

2.外部引入<script src="location"></script>

HTML文件里:<script type="text/javascript" src="input.js"></script>

创建JS文件,命名为input.js:document.write('hello world!!!');

3.注意

为符合web标准(w3c标准中的一项)结构、样式、行为相分离,通常采用外部引入。

如果一个script里又有内部又有外部,外部运行,内部的不好使。

输出用document.write(括号里写需要输出的);

三.js基本语法(解释性语言解释一行执行一行)

1.变量(variable)

          变量声明

  •                 声明、赋值分解
  •                 单一var

eg:两种表达方式一样

var a=10,b=20,c=30;

var a=10,

      b=20,

      c=30;

注意:var a=10;

            a=20;(会替换上面的a=10)

JS由值决定类型【动态解释语言】(其他语言是由类型决定值,例如C语言中:int,float,char)

           var a=10;

           a="abc";         a会被字符串替换

2.命名规则 

  •      变量名必须以英文字母、_ 、$开头
  •      变量名可以包括英文字母、_ 、$、数字
  •      不可以用系统的关键字、保留字作为变量名                      

3.值类型----数据类型

           1.不可改变的原始值(栈数据)

                Number(数字类型):var a=-123.234;   var b=123;

                String(字符串类型):  var b="abc";   var c="喜羊羊美羊羊“;

                                                  (不管双引号里面写啥都能显示都叫字符串)

                Boolean(布尔类型):  var b=true; var a=false;(逻辑中的正误,直接输出true,false)

                undefined:var b=undefined;(一个变量没赋值)

                null :表示一种占位 var b=null;(用空值覆盖不需要的值,做替换)

           2.引用值(堆数据)

                 array(数组类型): var arr=[1,2,3,4,5,false,"abc"];

                                                         (很多数据放进一个数组里就是一个数组)

                                                    var arr =[1];

                                                    var arr1=arr;

                                                    arr.push(2);(push是填一个数据在数组里面)

                 object(对象类型)

                 function(方法类型)

原始值和引用值的区别:赋值形式不同

1. 原始值是:把一个值放进另一个值里面去,改了第1个值,第2个值不会变(不变

    引用值是:把一个值放进另一个值里面去,改了第1个值,第2个值也会变  (

2.原始值存放在栈(stack),引用值存放在堆(heap)

栈:先进入的最后出来(跟往裤兜揣东西似的,先揣进去的最后拿出来)

     刚开始放数据从栈底开始(1011),把一个栈里的东西放到另一个栈里叫拷贝,所以他们之间互相不影响。eg:var a=10; var b=a; a=20;(改了第一个栈里的数值,第二个里面数值不变)

 

正儿八经系统改变值的过程是(上面a的值直接改在原来的地址里是便于理解):

最后把第一个num改成1011(原始值不可改变的特点

堆:栈内存里放的是堆内存的地址,引用值拷贝过去的是地址

eg: var arr=[1,2]; var arr1 = arr; arr.push(3)【往原数组里头插入一个3】;

(地址相同,一个改了另一个跟着改)

eg:【重新开一个房间】

arr[1,3]相当于原始值改变数值,另外开一个房间(1002)存放,所以打印出来的arr1还是[1,2] 

 

4.js语句基本语法

     1.语句后面要用分号结束 “;”,不用加的情况如下:

          function test() {}  函数后面不用加;

          for() {}  后面不用加;

          if() {}  后面不用加;

      2.js语法错误会引发后续代码终止,但不会影响其他js代码块

                                      (一个html文件可以放好多script代码块并且可以互相引用)

                     

 

  •              低级错误(语法解析错误):出现中文字符,整个代码都不能执行
  •              逻辑错误:eg出现未声明变量就引用
  •                                         (解释一行执行一行,哪错报哪,后面的代码就不执行)

      3.书写格式要规范,“=+/-”两边都应该有空格

四.js运算符

 1.运算操作符(先计算后赋值)

       (1)“+”

                  a.数学运算、字符串链接

eg:字符串链接:var a="a"+"b";  document.write(a);答案是ab

                  b.任何数据类型加字符串都等于字符串

eg:var a="a"+1+1;  document.write(a);答案是a11

eg:var a=1+1+"a"+(1+2);document.write(a);答案是2a3

       (2)“-” “*” “/” “%” “=” “()”

eg:var a=0/0;答案是NaN(Not A Number)

                  凡是这种可以得出一个数字类型的值,又不能得出数的 返回NaN

       (3)优先级“=”最弱,“()”优先级最高

赋值可以连续:var a=b=10;

       (4)"++"  "--"  "+="  "-="  "/="  "*="  "%="

注意:b %= a+3;必须先算右边和的值,然后再做赋值运算

eg:交换ab的值法2       法1直接引入第三个变量

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值