zoukankan      html  css  js  c++  java
  • javaScripct入门教程

    1.JavaScript环境安装

    JavaScript是一个轻量级的编程语言,安装自然很简单。

    a.打开你的电脑,找到一个Web浏览器,再找一个文本编辑器(比如记事本)

    b.没有了。。。

    2.JavaScript中的基本数据类型

    2.1数字(number)64位浮点值

    js中数字都是用number来表示,不区分整型和浮点型(其实就是浮点型),100.0===100===1e2(===表示恒等)

    NaN(not a number)表示一个非数字(如1/0,待测试,Java中是用正无穷大表示,即Double.NEGETIVE_INFINITY),它不等于0,也不等于自己

    Infanity表示可表示的最大值===1.79769…e308

    数字的方法:Math.floor(number)得到整数

    2.2字符串(String)js里面的字符串并不是对象(待求证

    用’’和“ ”都可以表示字符串

    没有char类型,只有只含一个字符的字符串

    字符串的属性"char”.length ===4;

    字符串是有方法的如:'char’.toUpperCase === ‘CAHR’;

    2.3boolean

    这个跟Java是有很大区别,跟PHP很像

    false包括以下几种:

    1. false
    2. null
    3. NaN
    4. unDefined
    5. 空字符串’’
    6. 0

    true包括其他的所有:

    1. 所有的除0和NaN以外的数字
    2. 所有的对象
    3. 所有的字符串包括字符串'false'

    3.流程控制语句(for while if swich do …)

    相同的就不赘述了,说一下不一样的地方

    for in语句

    for(myVar in obj){//对元素进行循环

        if(obj.hasOwnProperty(maVar)){//判断myVar属性是都属于对象

           //todo…

        }

    }

    4.对象

    4.1对象字面量(定义对象)

    在js中的字面量是神奇的,有点像PHP中的数组(js的数组是对象)

    对象字面量是一种简单的对象申明方式

    var empty_obj = {};//申明了一个空对象

    var people = {

        “name”:”Tony”,

        “age”:”19”,//用逗号分隔属性

          id: 17//并不强制要求用引号

          friend:{//允许属性嵌套

              name:”james”,

              phone:12300123

          }

        };

    看到这里你是否觉得似曾相识呢,JSON的创始人说这个东西启发了它创造了JSON

    4.2对象检索

    检索的方法有两种

    1. people[“name”]
    2. people.friend.name //更推荐这种,更加直观,还支持链式

    ||字符串用于填充默认值

    people.name||”admin”;//如果没有值填入admin

    检索不存在的值将会返回undefined

    4.3更新对象

    people.name = “GOGO”;

    4.4原型(父对象)

    Object.Prototype是js中的标准对象,和Java的object类最大的不同就是js是对象不基于类(free-clss)的

    创建基于原型的新对象(待研究)

    注意:原型在更新时候不起作用,只会更新自对象中的属性

             在检索时候,子对象中没有属性会去原型中检索,直到祖宗也没有才返回undefined,这个过程叫做委托

    4.5反射

    获得类型:

    typeof people.name                 //”string ”

    typeof people.toString            //”function

    检查元素是否属于对象

    people.hasOwnProperty(‘name’);//true

    people.hasOwnProperty(‘constructor’);//hasOwmProperty方法不会检查原型链(constructor属性属于原型链)

    4.6删除对象

    delete people.name;

    4.7全局变量

    js中非常牛逼的是,变量很随意就是全局的,这样就很容易发生名字冲突问题,解决这个问题的方法是

    使用唯一一个全局变量把他们包装起来

    var MyApp = {

        “app_name”:”langji”,

          “time”:20150808

    };

    5.函数对象(function)

    函数也是对象,函数对象的原型是Function.prototype(这个原型的原型也是Object.prototype)

    5.1函数字面量(定义函数)

    var add = function(a,b){//注意,这里的add是变量名,函数名,函数名在function后面(待考究)被隐藏了

        return a+b;

    };

    对比一下对象字面量

    var people = {

        //属性

    };

    值得一提的是函数可以出现在任何地方,函数中可以包含函数,函数出生就包含了上下文(闭包),允许链式调用

    5.2函数

    的调用

    js中函数存在4中调用模式:方法调用模式,函数调用模式,构造器调用模式,apply调用模式,这些模式在如何初始化this上存在区别

    • 方法调用模式

    当一个函数被保存为一个对象的属性时,我们称函数为方法,即对象的方法,this绑定该对象

    var people={

        name : “czm”,

        getName : function(){

            return this.name;//可以通过this获取上下文属性的方法称为公共方法

        }

    };

    调用: people.getName();

    • 函数调用模式

    当函数不属于一个对象时候,它就是一个函数(怎么听起来怪怪的),this绑定全局对象,导致内部函数不能访问外部函数的值(this本该绑定外部函数的this

    解决方法:自定义一个变量that,把外部函数的this赋值给它,内部函数通过that访问外部函数的属性

    • 构造器调用模式
  • 相关阅读:
    最全前端面试题
    经常犯的思维误区
    鸿蒙系统发布会
    前端面试题
    怎么做一个竖排文字?
    canvas-台球玩法
    canvas-自由落体球
    canvas-画一颗心
    canvas-学写字
    常用的65条正则表达式
  • 原文地址:https://www.cnblogs.com/cenzhongman/p/6783782.html
Copyright © 2011-2022 走看看