JavaScript基本概述

来源:互联网 发布:上知教育一个月多少钱 编辑:程序博客网 时间:2024/06/12 20:20

JavaScript基本概述

JavaScript(以下简称JS)是一种弱语言,区分大小写,用于响应web行为的编程语言。

JavaScript的使用方法有3种,和css样式使用的方式相同

  • 直接在HTML标签中写明
  • 使用<script>标签
  • 引用外部JS文件

JS的数据类型

数据类型 例子 数字 1,1.2 字符串 “zifuchuan”,’字符串’ 布尔值 true,false null null undefined undefined 对象 object(另说)

JS的算术运算

算术运算 描述 + 加法 - 减法 * 乘法 / 除法 % 取余 Math Math对象中包含了许多公式

变量的作用域

全局变量变量拥有全局作用域,而局部变量只能在声明的区域内有作用。

var scope="global";      //声明一个全局变量function checkscope(){       var scope="local";   //声明一个局部变量    return scope;        //返回局部变量的值,而不是全局变量的值}checkscope();            //=>local

函数作用域和声明提前

JS的函数作用域是指在函数内声明的所有变量在函数体内始终课件的。这意味着变量在声明之前甚至可以使用。这种特性被称为声明提前(hoisting)。

var scope="global";function f(){     console.log(scope);  //输出"undefined",而不是"global"     var scope="local";   //变量在这里赋初始值,但是变量本身在函数体内的任何地方均有定义的     console.log(scope);  //输出"local"}

上面的函数可以等价于下面的函数,这样更容易理解。

var scope="global";function f(){     var scope//在函数顶部声明了局部变量     console.log(scope);  //变量存在,值是"undefined"     scope="local";       //变量初始化赋值     console.log(scope);  //有了所期望的值

自增或自减的运算顺序

自增放在前面是先自加后再使用number,
自增放在后面是先使用number后再自加。

function test(){          var number=0;           console.log(number++);     //结果为0           console.log(number);       //结果为1           console.log(++number);     //结果为2           console.log(number);       //结果为2        }       test();

条件语句
if语句:

if(判断条件){   //符合条件,执行内容}else if(判断条件){  // 符合另一条件,执行内容}else{  // 不符合上述条件,执行内容}

其中注意的是如果在某个执行内容中加入return(后面不带返回值),将直接结束if语句。

var number=5;        function test(number){         if(number==5){             number++;             console.log(number);   //输出5             return;                //直接结束if语句             number+=number;        //由于return了,所以后面的语句是不会执行的             console.log(number);         }        }       test(number);

switch语句:

switch(expression要进行比较的值) {    case n比较值:        //代码块        break;    case m比较值:      //  代码块        break;    default:        //默认代码块}

循环语句

常见的循环语句有两种,for和while。

for (语句 1; 语句 2; 语句 3){    //被执行的代码块}//语句 1 (代码块)开始前执行 starts.//语句 2 定义运行循环(代码块)的条件//语句 3 在循环(代码块)已被执行之后执行
while (条件){    //需要执行的代码}

在循环中值得注意的是有两个关键字,break和continue。

        for (var i = 0; i < 10; i++) {            if (i == 3) {                break;           //在i等于3的时候,实现if语句,执行break,整个循环结束            }            console.log(i);      //最后输出只有0 1 2        }
 for (var i = 0; i < 10; i++) {            if (i == 3) {                continue;      //在i等于3的时候,实现if语句,执行continue,本次循环结束,进入下次循环            }            console.log(i);    //最后输出有0 1 2 4 5 6 7 8 9,除了3        }

对象object
创建对象的方法:

var empty={};               //没有任何属性的对象var point={x:0,y:0};        //两个属性var book={    "main title":"JS",      //属性名字中有空格,必须用字符串表示    "sub-title":"The js",   //属性名字中有连字符,必须用字符串表示    "for":"all js",         //"for"是保留字,必须用引号    author:"js"       text:function (){code lines}          //方法 };var obj=new Object();               //使用new关键字

使用点语法来引用对象中的属性和方法,
数字的点语法需要点2个
比如4..rofix(2);
还一种方法是结合[]来访问属性
比如4["number"]

构造函数和this关键字
上述通过new关键字来创建对象,而对象我们可以自己创建,这里就有构造函数这个东西来创建对象。

        function User(name,pwd){            this.name=name;            this.pwd=pwd;            this.show=function(){                console.log(name+":"+pwd);            }        }        var user=new User("zhangsan","333");        console.dir(user);

创建构造函数的时候要注意的是,构造函数的首字母要大写(一般默认),用于区分构造函数和普通函数。
创建好后,则通过new关键字就可以创建对象了。
其中this关键字起到对象指引的作用,在函数中,this就是指代函数本身的对象。

this关键字
-this是一个特殊变量
-默认情况下this指向全局对象(window)
-在对象中this指向对象本身
-JavaScript有三种方法可以改变this的指向:call,apply,bind

在上述创建的构造函数在每次创建新对象时,其中的函数一起被创建了,但是看函数的不需要一起被复制,于是引入prototype(原型)。
User.prototype.show=function(){console.log(name+":"+pwd);}
每一个对象都有一个prototype(原型)属性,可以使这个函数共用。

使用call, apply,bind方法可以改变函数执行的对象。

        function f(x, y) {            console.log(this.a);            console.log(x + y) ;        }        var g = {            a: "hello"        };        f.call(g, 1, 2);      //输出hello 3        f.apply(g, [1, 2]);   //输出hello 3,后面的参数需要以数组的方式来传入        var h=f.bind(g);      //输出undefined,先指定对象,在后面新的函数中在调用这个对象        h(1, 2);              //输出hello 3 h函数由于在上面bind指明了对象,所以h函数的对象就是                              //bind指明的对象g

本博客仅用于记录web前端学习情况

原创粉丝点击