javascript基础笔记

1、javascript基础

(1)javascript是什么,能做什么?

  是网景公司开发的一种用于与页面进行交互的脚本语言。

  javascript程序在浏览器端执行

  javascript程序可以写在.js结尾的文件里。

  作用:

    a、前端验证(就是对用户提交的表单中的数据进行验证,比如验证用户名是否为空,如果验证不通过,

      则浏览器不会将数据提交给服务器)

    b、ajax核心技术之一,用于异步向服务器发送请求并动态更新页面。

    c、与页面进行交互,生成动态的效果。

    d、获得浏览器相关的信息。

(2)javascript的组成部分

  ECMAScript:语法基础(已经标准化了)

  DOM:文档对象模型(部分标准化了)

  BOM:浏览器对象模型(没有标准化,但是大部分浏览器都支持window,location,history,screen等对象)

2、语法基础:

(1)数据类型:

  a、基本数据类型

    number:数字类型

    string:字符串

    boolean:布尔类型

    null:变量没有存放任何对象的地址

    undefined:未定义 alert(a);

(2)变量

  javascript是一种弱类型语言,变量的类型在运行时确认,并且可以随时转换。

  javascript大小写敏感。

  标识符不能使用关键字和保留字

  标识符首字母只能是A$_开头,在首字母以外可以包含数字。

  变量的作用域:

  在函数内部,不适用var声明的变量是一个全局变量,没有语句块作用域

(3)数组

  js中的数组长度可变,存放的数据类型可以是任意的

  var arr = new Array();

  arr[0] =1;

  arr[1] =2;

  alert(arr.lenght);

  var arr = [1,2];

  c、数组对象的常用方法和属性

  length属性返回数组的长度

  toString()方法,返回数组的字符串表示

  concat方法,用于连接两个数组

  join方法,用于将数组中的各个元素连接成字符串

  reverse方法,将数组反转

  slice用于截取数组的一部分并以数组的形式放回

  sort()排序,可通过如下形式来重新定义排序方法

    var arr4 = arr3.sort(function(a1,a2)){

     return -a1.length+a2.length;

    }

  d、数组可以当做堆栈和队列来使用

    push();

    pop();

    shit();

(4)字符串的常用方法和属性

  length属性 返回字符串的长度

  charAt(index) 返回指定位置的字符

  substring(from,to) 返回子字符串

  indexOf(str) 指定字符串在原字符串中第一次出现

  lastIndexOf(str) 指定字符串在原字符串中最后一次 出现的位置

  match(regexp) 返回匹配指定正则表达式的字符串 ,返回的结果是一个数组

  search(regexp) 返回按照正则表达式检索到的字符串位置

  toLowerCase/toUpperCase 返回大小写形式

  replace(regexp,'abc') 替换符合reg正则表达式规则的字符串

  split(','):分解,返回的是一个数组

3、DOM(Document Object Model)

(1)什么是dom?

  定义了一套规则,由于将结构化的文档(XML、HTML)转化为一棵树,目的是为了便于对结构化的文档

  进行增删改查操作。

(2)由于历史原因,dom没有完全标准化

  html dom模型:最早的dom模型

  w3c dom模型:主流,各大浏览器基本都支持编程时,都可以使用

(3)w3c dom模型:

  查找:

  方式1:使用id

    document.getElementById()

    有个方法:.innerHTML:标签之间的html代码

    如:obj2.innerHTML='用户名必须填写';

  方式2:遍历(浏览器不兼容)

    parentNode

    previousSibling

    nextSibling

    childNodes

    firstChild

    lastChild

    getElementsByTagName(tagName):一句标签名,查找标签点

    创建

    document.createElement(tagName)

    document.createTextNode(text):用的很少,因为有innerHTML了

    添加

    appendChild

    insertBefore

    replaceChild

    举例:

      var obj = document.getElementById('id');

      obj.appendChild(newNode);

    作为obj的子节点添加到末尾。

      obj.insertBefore(newNode,refNode);

    添加到refNode之前

      obj.replaceChild(newNode,refNode);

    使用newNode替换refNode

    删除

      removeChild

  样式操作:

    方式一,通过设置className属性

    方式二,通过修改style属性:

      <div >