Javascript基础学习小结

js:javascript用来展示与用户交互的行为。
ECMA:欧洲计算机制造协会
ISO/IEC:国际标准化组织以及攻击电工委员会

ECMAScript描述的内容

  • 语法
  • 类型
  • 语句
  • 关键字
  • 保留字
  • 运算符
  • 对象
ECMAScript规范的三种实现
  • JavaScript
  • ActionScript 基于flash实现的前端动画效果 简称as
  • ScriptEase

JavaScript的构成

  • 核心(ECMAScript) js语法规范
  • 文档对象模型(DOM) document object model 作用:整合js HTML css
  • 浏览器对象模型(BOM) Browser object model 作用:整合js和浏览器 控制浏览器的行为
    JavaScript在开发过程中大多数情况下是基于对象的,也是面向对象的。

面向对象编程语言的四个基本特征:

  • 封装
  • 继承
  • 多态
  • 聚集(抽象):在对象中具有包含(引用)其他对象的能力
    js使用中,绝大多数情况下,不需要进行面向对象的设计,绝大多数情况下是使用已有的设计好的对象。

js与HTML结合的两种方式

  • 在页面中使用
    alert(1);
    来直接写js代码 标签位置任意
  • 通过
    来引用JavaScript代码

js标签可以放在页面的任意位置 位置越靠前,执行越早。
js外部文件推荐扩展名是.js。其实可以使用任意扩展名。
通过script标签引入外部js文件,那么在该标签中就不要书写js代码。
在一个页面中引入的script标签数量没有任何限制。

ECMAScript语法

  • 变量区分大小写
    • 可以一次声明多个变量,并且变量不必具有相同的类型
    • 命名规范:
    • 第一个字符必须是字母,下划线 或者美元符号
    • 余下的字符可以是下划线,美元符号或者字母或者数字字符,但是不能包含其他特殊字符。
  • 变量是若类型的
  • 每一行的分号可有可无,没有就按换行符的末尾作为结尾
  • 注释与Java相同
  • 使用{}来封装代码块
  • 变量声明不是必须的
    • 变量使用var声明
    • 字符串使用单引号或者双引号引起来
    • 变量的类型可以改变
    • 变量命名遵循驼峰式命名规则
    • 变量声明时,var不是必须的:如果在变量声明时,不适用var,那么该变量是全局变量,使用变量时,会全局查找,找不到则会创建。var关键字创建的是局部变量。
ECMAScript的程序遇到未声明的标识符时,用该变量名创建一个全局变量,并将其初始化为指定值。

最好的习惯是像使用其他语言一样,总是声明所有变量。
js中没有文档注释,但是可以使用文档注释,效果和多行注释效果是一样的

js中数据类型分为原始数据类型和对象数据类型。
js中的原始数据类型: number 和string Boolean类型 null undefined js中没有char类型

null通常用来表示该变量是一个对象
js中变量的默认初始值默认是undefined
函数中没有返回值时,默认返回undefined

js中 typeof 用来判断一个变量时那种原始数据类型

null返回object时js的一个bug,但是被认为很贴切,所以保留了 该bug。

js中的语句

  • 循环 for for(var x in xxx )(用来遍历对象的属性) while(){} do{}while()
  • 判断 if(){} if(){}else{}……
  • 选择 switch(){}
    var c = +”abc”转换失败,类型为number 返回NaN
NaN not a number 专门用来表示无效数字的特殊值
在js中if语句的条件可以是任意的对象

js中Boolean运算数据类型的自动转换的规律

  • String “”转换为false ,其他转换成true
  • number NaN和0转换成 false,其他都转换成true
  • null 转换成false
  • undefined 转换成false undefined由null衍生出来的,所以undefined == null
NaN的特性
  • NaN参与的任何布尔型运算返回值都是false,除了 !=
  • NaN 与NaN之间也是不想等的

在比较的时候

  • 当运算符两端,一端是数字,一端是其他类型时,其他类型会自动像数字类型转换(abc……等字符串会转换成NaN)
  • 字符串在进行比较时,规律是:比较首字符的asc码,如果一样,比较第二位,……

js中 false === 0, true == 1 undefined 与null 都 !=0

js中没有真正意义上的类。

object类是所有类的父类。

js中通过function关键字来定义方法,在js中一个方法就是一个函数对象,只是该对象可以调用执行

函数对象的toString方法,打印的是函数对象的完整定义。

函数的定义方式:

//函数的定义方式一

    var fun = new Function("a,b","alert(a+b)");//等价于
    var fun = new Function("a","b","alert(a+b)");//也等价于
     function fun(a,b){
         alert(a+b);
    }

//方式二:

function fun(){

}

//方式三:

var func = function(){

}

匿名函数

function(){

}

可以自执行,在函数的定义之后添加一个().

在js中,可以定义同名的变量,后定义的变量会覆盖先定义的变量。函数其实就是一个以函数名为变量名的变量。

function a(a,b){
    alert(a+b);
}//相当于var a = function(a,b){alert(a+b);}
var a = 1;
var b = 2;
a(a,b);//这一行出错,因为a已经在后面定义成了number而不在是一个函数。

在js中,给函数传递的参数不受定义时的参数个数限制,可以传递多于定义时的参数个数,多余的参数不会被使用到,也可少传递参数,少传递的参数默认赋值为undefined。甚至可以传递0个参数。

总结:js中函数的调用只看函数名称,不看参数列表。

js中没有函数重载,后定义的同名函数,不管参数是否相同,都会覆盖之前定义的函数。

js中,函数都有一个属性arguments.length 表示函数运行时的实际参数个数。

return的两个作用:

  • 返回值
  • 结束方法的调用

    <a href="javascript:void(0)"></a>
    

    是为了给a标签添加事件,而不进行跳转
    void()是用来拦截函数的返回值的。

ECMAScript中的对象分类

  • ECMAScript自己定义的对象 也称之为本地对象。 包括
    • Object
    • Function
    • String
    • Boolean
    • Number
    • Array
    • Date
    • RegExp
    • 内建对象 build in object 可以直接使用而无需创建实例。(Global和Math)
  • 不是ECMAScript自己定义的对象 主机对象(host object)包括
    • BOM
    • DOM
      js中原始类型的string number boolean可以直接使用对象类型的方法和属性
      string number boolean 是原始数据类型 也是伪对象
      String Number Boolean是对象类型
      Boolean和Number在开发中几乎不使用。

String的属性和方法

属性

  • length 字符串长度
  • prototype 允许通过该属性添加属性和方法
  • constructor 创建该对象的函数的引用
    方法
    在js中对象通过new关键字创建。

instanceof判断属于那种对象。typeof判断的是属于那种原始数据类型。

通常会对URL进行转码提交

js中创建数组的方式:

  • 1.var arr = [1,2,4]; var arr=[]创建一个空数组
  • 2.var arr1 = new Array(1,2,3);
  • 3.var arr2 = new Array(3);
    • 创建数组时,数组Array的构造函数如果只传递一个参数,并且这个参数是整数,那么这个整数就是数组的初始长度。
    • 在js中数组的长度是可以改变的。
    • js中数组可以存放多种类型的数据。—类型任意
数组的角标必须是连续的。

join可以给数组添加一个分割符

js中大量字符串相加的时候,可以使用join来进行优化 把字符串都放在数组里面,然后join(“”)

在Java中stringbuffere的效率之所以相对较高,是因为创建的对象少。
sort()方法排序,默认按照字符串规则排序

date对象


date.getDay()获得星期几
月份计数是0-11
星期计数是0-6,国外是从星期天开始计数的。

正则表达式

构造方法,接受两个参数
* 1.正则表达式
* 2.匹配模式
- i 忽略大小写 ignoreDCase
- g 全局匹配 global
方法:
test 测试表达式是否与正则规则匹配

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值