zoukankan      html  css  js  c++  java
  • Javascript s01

    1.什么是javascript

             基于事件和对象驱动的,并具有相对安全性能的客户端脚本语言

             脚本语言,这东西不需要编译,是解释执行的.

            

             兼容性问题

             GOOGLE Chrome    ->V8 引擎

             Microsoft IE9    ->Charkra

             Mozilla FireFox  ->SpoderMonkey

            

             2009年,Node.js ->服务端运行  基于V8引擎 代替php

            

    2.如何在HTML中使用js?

             4种方式,使用js

             a.<script></script>

             b.<a href="javascript:alert('haha')">点我试试</a>      

             c.<div onclick="alert('不让你点')">不要乱点</div>

                       监听事件,基于事件触发

             d.<script src='01.js'></script>

                等于PHP中的include.外嵌内容就不要在中间写内容

                外部的扩展名是无所谓的.只要内容是JS

             e.JS的执行顺序

                       从上往下,跳过函数

             f.JS严格区分大小写(LINUX一样)

               HTML也不区分

               PHP函数不区分大小写,变量,常量等区分大小写

             j.调试JS代码

                       1.alter($user)                              //弹出来

                       2.doucument.write($user);   //php的echo

                       3.console.log($user);                //控制台输出

             h.JS中语法有错误时,浏览器会如何处理呢?      

                       一旦有错时,可能整个代码都没有效果

                       分段去缩小范围去排除错误

             i.规范      

                       必须写上<!DOCTYPE html>

             j.分号问题      

                       js中,一句代码结束后的分号,可以有,可以没有,默认以换行符作为语句的分割

                       推荐写上分号        

             k.直接量(常量)        可以在程序代码中直接使用的数据    

                       单引号和双引号一样,都不解析变量,但要注意嵌套关系,首选引号

            

             l.注释

             //单行

             /*  */多行

            

             m.标识符(给变量起名字)

                       字母,数字,下划线,$

            

             n.如何声明变量

                       直接使用标识符,作为变量名,但不能使用内部的关键字或保留字

                       var 变量名;

                       var 变量名=值;   //声明时同时赋值

                      

                       JS中,变量可以不声明,直接给变量赋值,会自动声明该变量

                       如果使用一个没有声明的变量,会出错

                      

                      

                       使用一个没有的属性的对象,会得到undefined,不会报错

            

    3.保留字

             a.关键字   if else function return var this new

             b.当前版本不使用的,但以后可能用到的   class  const  enum  export  extends ...

             c.js早期版本,将JAVA中所有关键字都保留了.  abstract double ..

             d.js中预定义的全局变量和函数 Number Array Function NaN(not a number) ...

            

    4.变量的作用域

             a.不在函数中声明的都叫全局变量

             全局变量可以在任何地方使用,包括在函数中,也可以使用(像PHP的超全局变量)

            

             b.在函数中声明的变量,是局部变量,只能在该函数及内部的函数中使用

             <?php

              $str="hahaha";

              

            

             function test(){

                       echo 'aaa';

                       echo   $GLOBALS['str'];

             }

            

             test();

             ?>

            

    **  c.如果声明局部变量不加 VAR 那么变成全局的.就算在函数中声明,也是全局变量

                      

             d.每一个函数,都有自己的作用域,内部的函数,都能用他定义的变量

            

             e.如果可以不使用全局变量,就尽量不要用

            

    5.变量声明提前

                       var num=5;

                       function test(){

                                //自动的隐示了 var num;

                                alter(num);  //变量的提前声明;undefined;

                                var num=6;

                                alter(num);  //6

                       }

                      

    6.数据类型

                       6种

                       typeof 运算符(跟加号 减号一样)

                       基本(原始)数据类型

                                :string , number , boolean

                               

                       特殊(其他)数据类型

                                :function , undefined

                               

                                测试函数的时候  typeof 函数名(不加括号)

                                function test(){alter('aaaaa');}

                                alter(typeof test);  //function

                                var b=test;

                                alter(typeof b);   //函数

                      

                       对象(复合数据类型 )

                                :object

                       除了上面5种全是对象类型

                       null //null是一个特殊的值,是一种特殊的对象类型

                       alter(typeof []);数组在JS中也是一种特殊的对象

                      

                       null 和 undefined 的区别

                       1.null是关键字,是一个特殊对象类型的值,不是数据类型

                       2.undefinded是一种数据类型,表示更深层次的"空",表示变量或属性没有被初始化

                      

                       3.null和undefined都表示"值的空缺",很多时候可以相互转换,如果用==比较,是ture,

                       要用===才能区分

                       4.如果将它们转为boolean

                       alert(!!null)    alert(!!undefined);

                       5.都不包含属性或方法

                      

    7.全局对象(global object)

             JS的最顶层是一个对象

             全局的函数和属性,都存在这个对象的中

             var name='admin';

             alter(this.name);

            

            

             全局对象中的方法或属性可以不写对象名,直接使用

            

             7.1 属性:

                       undefined

                       Infinity(无穷大)     alert(2/0);

                       -Infinity(负无穷大)  alert(-2/0);

                       NaN (Not a Num);

                       alter("张三" * "李四") //NaN

                      

             7.2 全局函数(方法):

                       a.isNaN();         is not a num 如果不是一个数,则返回ture

                       能认识用字符串表示的数 "1.5"  "1.2e3"

                      

                       b.parseInt("1.5rrrr")   //1   跟PHP差不多

                       可以将字符串或小数转为整数

                      

                       c.eval

                                eval("var a=5");   //直接把双引号去了.

                                var a=5

                                直接把代码给执行了

                                alert(a);

                      

                       d.escape() 用于编码或者转译

                      

                       var str="a#gf";

                       str=escape(str)

                      

                       document.write(<a href=16.php?w=" "></a>)

            

                       e.unescape

                      

             7.3 构造函数

                       可以new 一个构造函数生成一个对象

                       String()

                       <?php

             //常规使用类和对象,需要得到对象后,单独给不同的对象属性

            

             class Student{

                       public $name;

                      

                       //与类同名的是构造方法

                       public function Student(){

                                echo 'ha ha....';

                       }

                      

                       public function sayHi(){

                                echo '大家好,我是'.$this->name;

                       }

             }

            

             $obj=new student();

                      

                       Number()

                       Boolean()

                       Object()

                       Array()

                       Date()

                       RexExp()

                      

             7.4 预定义对象

                       Math

                       JSON

    8.浏览器提供的全局对象  window对象

             在客户端JS中,浏览器提供一个Window对象代表全局对象

             用window对象,就等同于在用全局对象,也可以用this来指代

             加入了更多的属性和方法

             documont

             alter()        

             location

             setTimeout()

             document.all IE特有,其他游览器,没有.

            

            

    为什么全局对象中的属性或方法可以直接使用,我们自己的对象或方法,是否可以这么做?

    with的作用

            <script type="text/javascript">
      var obj=new Object();
      obj.name="张三";
      obj.age=18;
      
      with(obj){
       alert(name);
      
      }
      
      
     </script>

            

  • 相关阅读:
    《软件项目成功之道》阅读笔记02
    每日日报47
    每日日报46
    每日日报45
    WAMPSERVER打开phpmyadmin时遇到404错误——解决办法
    每日日报44
    每日日报43
    简单的利用Layui来实现登录功能
    01函数式编程概念
    03适配器模式
  • 原文地址:https://www.cnblogs.com/wicub/p/3107061.html
Copyright © 2011-2022 走看看