JavaScript基本概述

JavaScript基本概述

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

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

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

JS的数据类型

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

JS的算术运算

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

变量的作用域

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

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前端学习情况

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值