美文网首页
javascript

javascript

作者: 成都阿童木 | 来源:发表于2019-01-27 19:06 被阅读0次

    1. javascript作为一种脚本语言可以放在html页面中任何位置,但是浏览器解释html时是按先后顺序的,所以前面的script就先被执行。比如进行页面显示初始化的js必须放在head里面,因为初始化都要求提前进行(如给页面body设置css等);而如果是通过事件调用执行的function那么对位置没什么要求的。

    2. 通常,我们需要在某个事件发生时执行代码,比如当用户点击按钮时。如果我们把 JavaScript 代码放入函数中,就可以在事件发生时调用该函数。通常的做法是把函数放入 <head> 部分中,或者放在页面底部。这样就可以把它们安置到同一处位置,不会干扰页面的内容。

    3.innerhtml是一个属性,所以用“=”  

    JavaScript 可以通过不同的方式来输出数据:

    使用 window.alert() 弹出警告框。

    使用 document.write() 方法将内容写到 HTML 文档中。

    使用 innerHTML 写入到 HTML 元素。

    使用 console.log() 写入到浏览器的控制台。

    4.document.write()的覆盖问题。document.write是直接写入到页面的内容流,如果在写之前没有调用document.open, 浏览器会自动调用open。每次写完关闭之后重新调用该函数,会导致页面被重写。

    innerHTML则是DOM页面元素的一个属性,代表该元素的html内容。你可以精确到某一个具体的元素来进行更改。如果想修改document的内容,则需要修改document.documentElement.innerElement。

    innerHTML很多情况下都优于document.write,其原因在于其允许更精确的控制要刷新页面的那一个部分。

    <!DOCTYPE html>

    <html>

    <body>

    <h1>我的第一个 Web 页面</h1>

    <p>我的第一个段落。</p>

    <script>

    document.write(Date());

    </script>

    </body>

    </html>    不会被覆盖

    <!DOCTYPE html>

    <html>

    <body>

    <h1>我的第一个 Web 页面</h1>

    <p>我的第一个段落。</p>

    <button onclick="myFunction()">点我</button>

    <script>

    function myFunction() {

        document.write(Date());

    }

    </script>

    </body>

    </html>   会被覆盖 ,新页面只有日期

    5. 变量是一个名称。字面量是一个。var和let有区别。let声明的变量只在当前代码块起作用。如函数内的if内的let变量作用域只在if内

    6. var person = {firstName:"John", lastName:"Doe"};  // Object 通过对象字面量赋值

    注意对象属性通过:赋值

    7. 反斜杠\ 用于换行

    8.您可以在一条语句中声明很多变量。该语句以 var 开头,并使用逗号分隔变量即可:

    var lastname="Doe", age=30, job="carpenter";

    作用域规则

    c/c++中声明的变量作用域与let相同

    9.实参个数如果比形参少,那么剩下的默认赋值为 undefined,如果实参传的比形参数量多,那么是全部都会被传进去的,只不过没有对应的形参可以引用(但可以用 arguments 来获取剩下的参数)。

    10.字符串 

    实质上是String对象 下面那些方法都是它的属性

    (1) 反斜杠\  是转义符

    var answer="He is called \"Johnny\"";

    (2)indexof()查找字符首次出现位置

    var str="Hello world, welcome to the universe.";

    var n=str.indexof("world"); //    从0开始数  n=6 

    (3)replace()替换字符

    str="Please visit Microsoft!" 

    var n=str.replace("Microsoft","Runoob");  // n=Please visit Runoob!

    (4) split() 分割字符串成数组

    var str="i want to eat something";

    var n=str.split(" "); //第一个参数是空格 即对原字符串以空格为依据进行分割。n= i,want,to,eat,something

    n[0]=i 

    n[1]=want

    n[2]=to

    若是 var n=str.split(",") 即以逗号为依据进行分割,则 n=i want to eat something,相当于还没被分割,因为原字符串没有逗号

    11.number数字

    (1)NaN属性 

    isNaN()方法判断是否是数字,不是数字则返回真

    一个数字除以一个字符串结果不是一个数字。一个数字除以一个字符串数字结果是一个数字

    var x = 1000 / "Apple";

    isNaN(x); // 返回 true

    var y = 100 / "1000";

    isNaN(y); // 返回 false

    (2)数字对象

    var x=123;  // x是数字

    var y= new Number(123);  //  y是对象

    x==y返回false

    12.数组array

    所有数组也都是对象,是Array类的实例

    (1)创建数组

    (2)数组的prototype属性。可以为数组类新建属性和方法。下图新建了一个myUcase()方法

    注意在新创建的方法内使用this,因为调用新方法的是实例化的数组对象

    n.push("xxx") //数组尾部添加xxx字符串

    n.pop()   //删除数组尾部一个元素  n.pop()返回的是被删除的最后一个元素,不是删除后的数组

    n.shift()//删除数组第一个元素

    n.join(",")   //将数组变成字符串,默认分隔符为逗号。功能与str.split(',')相反

    n.slice(1,3) //切片,返回数组。返回数组n的第2个和第3个元素组成的数组

    var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];

    var citrus = fruits.slice(1,3);   //  citrus=[Orange,Lemon]

    n.sort()  //排序 默认从小到大。sort(sortby)接受形参sortby且必须是函数

    var points = [40,100,1,5,25,10];

    points.sort(function(a,b){return b-a});  //此时就是按从大到小排序

    points.sort(function(a,b){return a-b}); //此时按从小到大排序

    n.splice(index,howmany[,item1,itme2,....])  用于删除和添加元素。返回的是被删除的元素组成的数组

    var n=["apple","pear","berry"];

    var p = n.splice(1,2,"water","gun");   //从第2个位置开始删除,删除2个元素。

                          //并从第2个位置开始插入元素    n=["apple","water","gun"]   p=["pear","berry"]

    n.toString 将数组转为字符串

    n.unshift("xxx","xxxxx")  //在数组开头插入xxx与xxxxx两个元素。

    更多数组方法http://www.runoob.com/js/js-obj-array.html

    13.对象——变量的容器、

    调用对象属性:    .property或["property"]

    调用对象方法属性:     .property()

    javascript没有类 ,对象的模板是构造函数。JavaScript 是面向对象的语言,但 JavaScript 不使用类。在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。JavaScript 基于 prototype,而不是基于类的。JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...此外,JavaScript 允许自定义对象。

    http://www.runoob.com/js/js-objects.html

    (1)创建对象。两种方法

    a.直接创建对象实例

    或用字面量创建

    firstname,lastname,id是变量,john,Doe,5566是变量的值。所以说对象是变量的容器

    b.使用对象构造器(构造函数)

    this通常指向的是我们正在执行的函数本身,或者是指向该函数所属的对象(运行时)

    (2)给对象构造器添加方法 。注意要先传递方法。但也可以用prototype。

    //法一

    function person(name){

        this.name=name;

        this.changeName=changeName;  //这句一定要有。把方法传递给对象实例

        function changeName(name){ this.name=name; }

    }

    //法二 用prototype

    function person(name){

        this.name=name;

        person.prototype.changeName=function(name){ this.name=name;}

    }

    var man = new person("chen");

    man.changName("rui");

    (3)给对象实例创建方法

    var person={

        name:"chen",

        fun:function (){

        document.write(this.name)

        }

    }

    person.fun();   //调用

    (4)for..in..循环

    var person={fname:"John",lname:"Doe",age:25};

    for (x in person){    

    document.write(p[x]);   //   x="fname"  ,  "Iname"  ,  "Doe"      即x本身就是字符串 p.x将无法访问。第一次循环时  p[x]=p["fname"]

     }

    14.函数

    (1)定义函数

    a.   function f(a,b){ return a*b;  }

    b.    var x = function(a,b){ return a*b } ;  //匿名函数是一句话 要加分号

           var z = x(4,3);

    (1)var x = "chen"与 x = "chen"

    (2)函数内的return语句执行后就结束该函数的执行

    (3)设计一个计算器

        取得表单输入的值是用value 不是用innerHTML .且得到的是字符串形式的数字。要用Number()函数转为数字

    (4)对多选框实现全选和取消全选

    15.HTML标签中的属性也是js中对象的属性。

    如<button id="test"  onclick="function()">可以写成

    var x=document.getElementById("test");

    x.onclick=function();

    16.运算符

    17.Date()

    var  x = new Date();

    x.getDay()  //  显示星期。0-6分别是星期天至星期六

    x.getHours()//

    x.getMinutes//

    x.getSeconds//

    或者也可以这样写

    var x = new Date().getHours() ;

    18 . switch(){} 当没有break时。会执行剩下所有的case和default 内的语句而且不判断条件

    19 .循环

    (1)for循环中的一些细节

    (2)for in循环用于对象和数组

    下图中x是字符串 所以person["age"]=person[x]

    下面是用于数组的

    (3)break用于结束循环和switch。也可以 break xxx; 结束xxx代码块。(xxx是代码块的标签名)

    continue只能用于循环中。

    20. typeof 

    (1)

    typeof "chen"  //返回string

    typeof 3.14    //返回number

    typeof [1,2,3,4]   //返回object ,数组是特殊的对象类型

    (2)null与undefined

    a. 何时使用null?

    当使用完一个比较大的对象时,需要对其进行释放内存时,设置为 null。

    null表示一个变量将来可能指向一个对象。一般用于主动释放指向对象的引用,例如:

    var emps = ['ss','nn'];

    emps = null;    // 释放指向数组的引用

    b.二者区别

    null  表示一个空对象引用。undefined是一个没有设置值的变量。所以两者值相同,但类型不同。

    var person=null   //person类型为object

    var person   或  var person = undefined       //person类型为undefined

    21.类型转换 String()全局函数与  .toString()属性

    var x=123;

    x.toString()  或 String(x) 将返回字符串即string类型的123   但x本身的类型不变,还是number

    相关文章

      网友评论

          本文标题:javascript

          本文链接:https://www.haomeiwen.com/subject/tnlijqtx.html