首页 > 代码库 > javascript基础笔记

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 id="d1" style=" "></div>
      var obj = document.getElementById(‘d1‘);
    css属性名如果有“-”,则去掉“-”号,第一个字母大写,比如background-color变成backgroundColor
    obj.style.backgroundColor=‘red‘;
(4)html dom
  html dom只有有限的几个节点类型,另外,不能遍历。
  查找要使用document.getElementById
  a、select对象
    属性:
      selectIndex:用户选中的下标的序号(下标从0开始)
      options:是一个数组,表示所有选项。每一个数组元素是一个option对象。
  b、option对象
    属性:
      value:option的值
      text:option标记之间的文本
      selected:true/false值为true表示选项被选中
  如何创建一个option对象:
  var op = new Option(text,value);
  c、table对象
    rows属性
      返回表格中所有行的一个数组。
      该集合包括<thead> <tfoot>和<tbody>中定义的所有行。
    tBodies属性
      返回包含表格中所有tbody的一个数组
    tFoot属性
      返回表格的TFoot对象
    tHead属性
      返回表格的THead对象。
    方法:
      insertRow(index):
      var row = insertRow(index);index从0开始
      在表格中的指定位置插入一个新行。
      返回一个TableRow,表示新插入的行。
      deleteRow(index)方法:
        从表格删除指定位置的行。
  d、TableRow对象
    属性:
      cells :
        返回包含行中所有单元格的一个数组
      rowIndex属性:
        返回该行在表中的位置。
    方法:
      deleteCell(index):
        用于删除表格行中的单元格(<td>元素)
      insertCell(index);
        方法用于在html表的一行的指定位置插入一个空的<td>元素。返回值是一个TableCell对象
  e、form对象
    属性:
      action:
      method:
      elements:返回form中所有的节点,是一个数组
    方法:
      submit():提交表单,会绕过表单验证。
      reset():重置表单
(5)浏览器对某些html标记产生的事件,有默认的行为比如点击链接,会跳到href指定的地址。
    表单,当点击提交按钮,会将表单的数据提交给服务器。有些时候,需要禁止默认行为。
  <a href="http://www.mamicode.com/abc.do" onclick="return false;">test</a>
  <form onsubmit="return false;">

javascript基础笔记