Day 23 js 基础知识 变量 数据类型 基本语法 运算符 条件语句 if for循环 while 循环

一、web发展史:

  1.mosaic(马赛克),是互联网历史上第一个获普遍使用和能够显示图片的网页浏览器,1993年问世。

  2.Netscape Navigator(网景),后衍生出mozilla firefox(火狐)。

  3.JavaScript,1196年出现,最初设计目标是改善网页的用户体验。

二、浏览器的组成:

  1.shell部分(贝壳):用户能操作的部分

  2.内核部分:

    a.渲染引擎(语法规则和渲染)

    b.js引擎  

    c.其他模块

三、js引擎

  2001年发布IE6,首次实现对js引擎的优化和分离。

  2008年google发布最新浏览器chrome,采用优化后的js引擎,代号v8,以速度快闻名。

  Firefox3.5  tracemonkey(对频繁执行的代码做了路径优化)

  Firefox4.0  jeagermonkey

四、js特点

  1.编译性语言(c c++ ):

    优点:快捷

    不足;移植性不好,不能跨平台

  2.解释性语言(js、php):

    优点:可以跨平台,不需要编译成文件                                     

    不足:稍微慢,

  java--javac--编译成.class--jvm--解释 执行(oak语言)

  3.单线程语言 js(同时一件事,同步执行) ECMA标准 ES

      轮转时间片:

  4.多线程语言(同时多件事,异步执行)

  js三大阶段:

     ecmascript:原生部分

     DOM:操作文档

     BOM:操作浏览器

五、主流浏览器及内核:

   IE浏览器    trident    

   chrome      blink

   firefox     gecko

   opera       Presto

   safari      webkit

JS:

一、引入js

1.页面级js 

  <script type="text/javascript"></script>

2.外部js文件

<script type="text/javascript" src="1.js"></script>

  js不可以内部外部同时用,同时用内部会失效

二、js基本语法

1.变量

  var a; 变量声明

  a=100;变量赋值

  简化写法: var a=100;  

  向系统申请一个房间,命名为a,给它赋一个100的值

  

  var a=100;

  document.write(a); 把a的值打印到页面

  单一var模式:

  var a=10,

      b=20,

      c=30,

      d=40,

      e=50;

  documen.write(a,b,c,d,e);

  2.变量的命名规则:

    a.变量名必须以 英文字母 或 _(下划线) 或 $ 开头

    b.变量名可以包含英文字母 下划线 $ 数字

    c.不可以用系统的关键字、保留字作为变量名

      --关键字:系统定义的单词,在系统里有特殊的语法含义

          (break  else  new  var  case  finally  return... )

      --保留字:系统更新升级,系统未来有可能会出现的单词

          (abstract  enum  int  short  boolean  export...)

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

    a.原始值:存stack(栈), 先进去的东西最后出  栈与栈之间的赋值是复制

      Number    var a = 1234;        数字类型

      Boolean   var b = true/false ; 逻辑类型 

      String    var b = "你最珍贵";   字符串类型

      undefined var e = undefined;   

      null      var f = null;        占位值类型

    b.引用值:存heap(堆),  散放,赋值是引用    

      Array     var arr = [];        数组

      Object

      function

      ...

      data

      RegExp

  4.基本语法

    a.语句后面要用分号结束

        不需分号结束的,如:

        function test(){}  函数后

        for(){}            for循环

        if(){}           

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

        错误:

           低级错误:(语法解析错误)

           逻辑错误:(标准错误,情有可原)

    c.书写格式要规范,符号两边有空格

  5.js运算符

    a.加号运算:

      数学运算、字符串链接

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

    b.- * / %(摩尔) = ()  优先级=最弱   ()的优先级较高

      var a = 1 + 1 +"a"+ ( 1 + 2 );  2a3

      var a = 0 / 0;                  NaN (not a number)

      var a = 1 / 0;                  infinity (无限)

      var a = 10; 

          a ++;                        11 

      var a = 10;

          a --;                        9

      顺序:赋值顺序自右向左,计算顺序自左向右

      var a = 10; 

      document.write(a ++);            10

      var a = 10; 

      document.write(++ a);            11

      var a = 1;

      var b = --a + --a;

      document.write( b  );            -1

      var a = 10;

      var b = ++a - 1 + a++;

      document.write( b + a );         33

      var a = 10;

      a += 10;  (a = a + 10);          20

      var a = 10;

      a *= 2;  (a = a +*2);            20

      var a = 10;

      a %= 2;  (10能被2 整除 余数为0)    0

      var a = 3;

      a %= 4;                           3

  6.比较运算符

      var a = 1 > 2;

      document.write(a);                false

        字符串比较的是asc码,A--65 a--97

      var a = 1 == 2;(是否等于)

      document.write(a);                false

      var a = 1 != 2;(是否不等于)           

      document.write(a);                true 

        NaN不等于任何值,包括自身

  7.逻辑运算符 

      && 与:全真才真,一假便假

      var num = 1 && false;

      document.write(num);

      a.两个表达式:先看与运算符前面的表达式转换成布尔值是否为真,如果为真,那么它会

      看第二个表达式转化为布尔值的结果,如果只有两个表达式的话,只要看到第二个

      表达式,就可以返回第二个表达式的值。如果第一个表达式为false,那么它会将

      第一个表达式的值返回。

      b.多个表达式:第一个真,看二个,第二个真,看第三个,直到遇到假,返回假的值

      c.转换成false的值有:undefined  null  NaN ""(空字符串) 0  false

      d.短路语句:如果前面是真,返回后面值,如果前面为假,返回前面值

        2 > 1 &&document.write('你好') 

        执行一个语句,会用到data,&&可以判断data是否有意义

        data && function(data):

      || 或:一真便真,全假才假

      var num = 0 || false;

      dicument.write(num);

      a.两个表达式:先看第一个表达式,如果第一个是真,直接返回第一个表达式,如果第一个是假,且只有两个表达式,无论第二个是真是假,都返回第二个表达式的值。

      b.多个表达式:遇到真便返回

      c.应用:灵活解决兼容性

          

      ! 非:转换成布尔值再取反

      var a = !123;

      document.write(a);                 false

      var a = !"";

      document.write(a);                 true

      var a = !!"";

      document.write(a);                 false

三、条件语句

  1.if:if(条件){执行语句}  条件成立,执行

      if(1 > 0) { 

        document.write('你好');

      }                                  你好

      var score = parseInt(window.prompt('input'))

      document.write(score);

      if (score > 90 && score <= 100) {

        document.write("lihai");

      }else if (score > 80 && score <= 90) {

        document.write("youxiu");

      }else if (score > 70 && score <= 80) {

        document.write("lianghao");

      }else if (score > 60 && score <= 70) {

        document.write("haixing");

      }else if (score < 60) {

        document.write("buxing"); 

      }else{

        document.write('error');

      }

      如果条件与条件之间有交叉点的话,不能用else if。else 是除以上条件意外的情况,即补集。

  2. if与&&的转换:

      1 > 2 && document.write(a);

      if(1 > 2) {

        document.write(a);

      }

  3.for循环

      for(var i = 0; i <10; i++){

        document.write('a');

      }                                       

      执行顺序:

      (例:输出10个a)

        var i = 0;             

        if(i < 10){

          document.write('a');

        }                      条件判断

        i++                    条件成立,则执行

        if(i < 10){

          document.write('a');

        }                      条件判断                 

        i++                    条件成立,则执行

         ......

    另一写法:

        var i = 0;

        for(; i < 10; ) {

          document.write('a');

          i++;

        }

    再一写法:count用来计数

        var i = 1;

        var count = 0;

        for(; i; ){

          document.write('a');

          count ++;

          if (count == 10 ) {

            i = 0;

          }

        }

    又一写法:

    var i = 1;

    for(; i; ){

      document.write('a');

      i ++;

      if (i == 11 ) {

        i = 0;

      }

    }

  4.for循环拓展

    (1) 打印0-9的数字:

      var i = 1;

      for(var i = 0; i < 10; i++){

        document.write(i);

      }

    (2) 求0-9的和:

      var i = 1;

      var count = 0;

      for(var i = 0; i < 10; i++){

        count += i;

      }

    (3) 100以内同时能被3或5整除的数打印出来

      var i = 1;

      var count = 0;

      for(var i = 0; i<100; i++ ){

        if(i % 3 == 0 || i % 5 == 0 ){

          document.write( i );

        }

      }

    (4)0-100的数字,倒向思维

      var i = 100;

      for(; i--; ){

        document.write(i);

      }

  5.while循环  for循环只写中间就是while循环  while是for循环的简化版

    (1) 打印0-9:

      var i = 0;

      while(i < 10) {

        document.write(i);

        i++;

      }

    (2) while(1){}  无尽循环  never-ending loop

    (3) 含7的数及7的倍数

      var i = 0;

      while(i < 100) {

        if(i % 7 ==0 || i % 10 ==7){

          document.write(i);

        }        

        i++;

      }

    (4)do while 循环  不管满不满足条件,都先执行一次 判断成立再执行第二次

       do{

        document.write('a');

       }while




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值