一、输出
   为方便调试可以输出内容,但是用户是看不到的。要在开发者模式中看。 
 
 
  
  
  console 
  . 
  log 
  ( 
  "Hello" 
  ); 
 
 
  
  
 
 二、外部文件引用
   可以直接在html中写JS 
 
 
  
  
      <head> 
 
 
  
          <meta charset="utf-8"> 
 
 
  
          <script> 
 
 
  
              console.log("hello") 
 
 
  
          </script> 
 
 
  
  
      </head> 
 
 
  
 
   也可以外部引用,先写一个JS文件,然后加载到html中。 
 
 
  
  
 
 三、变量
 
  命名规则: 
 
 
 -  
   名称可包含字母、数字、下划线(_)和美元符号($),不以数字开头
-  
   名称对大小写敏感(y 和 Y 是不同的变量)
-  
   保留字(比如 JavaScript 的关键词)无法用作变量名称
 
  声明: 
 
 
 
   用var。声明之后,变量是没有值的。(技术上,它的值是 undefined。) 
 
 
  
  
  赋值: 
 
 
  
  
  var carName; 
 
 
  
  carName = "porsche"; 
 
 
  
  
  
  var carName = "porsche"; 
 
 
  
  
  
  
  
  var person = "Bill Gates", carName = "porsche", price = 15000; 
 
 
  
 
   这些方式都可以。 
 
 
  
  
  
  作用范围: 
 
 
  
 
   局部变量,在函数内声明,只能在函数内使用。 
 
 
  
  
  // 此处的代码不能使用 carName 
 
 
  
  
  function myFunction() { 
 
 
  
      var carName = "Volvo"; 
 
 
  
      // 此处的代码可以使用 carName 
 
 
  
  } 
 
 
  
  
  // 此处的代码不能使用 carName 
 
 
  
 
   全局变量,在函数外声明,全局访问。 
 
 
  
 
   PS:和java不一样,js没有代码块概念。 
 
 
  
  
  
  if(b){ 
 
 
  
      var num=10; 
 
 
  
  } 
 
 
  
  console.log(num); 
 
 
  
 
   在java中,这样是不行的,在js中,可以。num是全局变量。  
 
 
  
  
 四、数据类型
 
 
  
  1.number类型: 
 
 
  
  
 
 
   1/0在java中会出错,这边表示负无穷大。 
 
 
 
   NaN就字符串转换数字的时候出错了,转不了。 
 
 
  
 
   转换: 
 
 
 
           可以将数字字符串转换Number类型,比较严谨不想parseFloat,“11a”也会转成11 
 
 
  
  
  
  var n = Number("123"); 
 
 
  
 
           也可以用parseInt和parseFloat,功能比较全。都会输出123 
 
 
  
  
  console.log(parseInt("123")); 
 
 
  
  console.log(parseInt("123agsdg")); 
 
 
  
  console.log(parseInt("123aaaa456")); 
 
 
  
  console.log(parseInt(" 123 ")); 
 
 
  
  
  2.boolean类型: 
 
 
 
   就是true和false比较简单。 
 
 
  
 
   转换: 
 
 
 
           当value为0、-0、null、""、false、undefined、NaN时,那么Boolean()转换成Boolean类型的值为false,其他都是true。 
 
 
  
  
  
  var b = Boolean(0); 
 
 
  
  
  
  3.undefined类型: 
 
 
 
   声明了变量,但是没用赋值就是这个值。 
 
 
  
  
  4.string类型: 
 
 
 
   不区分单引号和双引号,都是字符串。 
 
 
  
 
   转换: 
 
 
 
           可以把这些转成string 
 
 
  
  
  var s1 = String(11); 
 
 
  
  var s2 = String(true); 
 
 
  
  var s3 = String(undefined); 
 
 
  
  var s4 = String(null); 
 
 
  
  var s5 = String(NaN); 
 
 
  
  
  
  5.null类型: 
 
 
 
   好比java中,声明了对象,没创建对象。 
 
 
 
   但是JS中,输出null的时候会是object类型。 
 
 
  
  
  
 五、运算符
   1.算术运算符(+ - * / % ++ --) 
 
 
  
 
   / 除法,有余数和java不一样 
 
 
 
   %取余数 
 
 
  
 
   ++ -- 自增 自减 
 
 
 
   单独使用在前在后没区别 
 
 
 
   组合使用,在前先自增,再将自增结果带入运算;在后先把原来值带入运输,再自增。 
 
 
  
  
  var num = 1; 
 
 
  
  var num2 = ++num; 
 
 
  
  console.log(num); 
 
 
  
  console.log(num2); 
 
 
 
   都是2 
 
 
  
  
  var num = 1; 
 
 
  
  var num2 = num++; 
 
 
  
  console.log(num); 
 
 
  
  console.log(num2); 
 
 
 
   num为2,num2为1 
 
 
  
 
   2.赋值运算符(= += *= /= %=) 
 
 
  
  
 
 
   3.条件运算符(=== == > < >= <= !=) 
 
 
  
 
   4.字符串运算符(+ +=) 
 
 
  
 
   5.逻辑运算符(&& || !) 
 
 
  
 
   6.三元运算符 (表达式1?表达式2:表达式3) 
 
 
  
  
  
 六、条件/循环语句
   和Java差不多 
 
 
  
  
 七、函数
 
  JavaScript 函数通过 function 关键词进行定义,其后是函数名和括号 ()。 
 
 
  
  函数名可包含字母、数字、下划线和美元符号(规则与变量名相同)。 
 
 
  
  圆括号可包括由逗号分隔的参数 
 
 
  
  由函数执行的代码被放置在花括号中:{} 
 
 
  
  
  var x = myFunction(7, 8);        // 调用函数,返回值被赋值给 x 
 
 
  
  
  function myFunction(a, b) { 
 
 
  
      return a * b;                // 函数返回 a 和 b 的乘积 
 
 
  
  } 
 
 
  
  
  
 八、常用内置对象
   可以去这查看 
  JavaScript 教程 
 
 
  
  关键是如何去查看文档,学习对象和方法。 
 
 
  
  
  1.字符串对象  
  JavaScript String 参考手册 
 
 
  
 
   用“”,‘’就可以创建字符串对象。如果字符串中要输出“,‘,\,要用\来转义。 
 
 
  
  
 
   常用方法: 
 
 
  
  charAt()  
  返回指定位置处的字符。 
 
 
  
  
  indexOf()  
  返回值在字符串中第一次出现的位置。 
 
 
  
  
  
  2.数组 
 
 
  
 
   创建 
 
 
  
  
 
 
   常见操作 
 
 
  
  
 
  
 
  
  3.Math对象 
 
 
  
  
 
   主要是数学相关 
 
 
  
  
 
  
  4.日期对象 
 
 
  
  
  JavaScript Date 参考手册 
 
 
  
  
  
  5.正则对象 
 
 
  
  
 
 
   匹配字符串个数为6-12的字符串。 
 
 
  
 九、对话框
   警告(window可以省略) 
 
 
  
  
  window.alert("这是警告"); 
 
 
  
  
  
 
 
   询问 
 
 
  
  
  var key = prompt("请输入密码"); 
 
 
  
  console.log(key); 
 
 
  
  
 
 
   确认 
 
 
  
  
  var flag = confirm("确认登陆吗?"); 
 
 
  
  if(flag){ 
 
 
  
      console.log("确认登陆"); 
 
 
  
  }else{ 
 
 
  
      console.log("取消登陆"); 
 
 
  
  } 
 
 
  
  
  
 
 十、定时器
   每2s执行一次,10s后执行一次(之后不执行) 
 
 
  
  
 
 十一、自定义对象
   用new关键字创建 
 
 
  
  
  var obj = new Object(); 
 
 
  
  obj.name = "Mike"; 
 
 
  
  obj.fun = function (age) { 
 
 
  
      console.log("Hello " + this.name + age); 
 
 
  
  } 
 
 
  
  
  //使用对象 
 
 
  
  console.log(obj.name); 
 
 
  
  obj.fun(1); 
 
 
  
  
 
   字面量创建 
 
 
  
  
  var obj = { 
 
 
  
      name: "Mike", 
 
 
  
      fun: function (age) { 
 
 
  
          console.log("Hello " + this.name + age); 
 
 
  
      } 
 
 
  
  } 
 
 
  
  
  //使用对象 
 
 
  
  console.log(obj.name); 
 
 
  
  obj.fun(1); 
 
 
  
  
  
 
   构造方法创建对象 
 
 
  
  
 
 十二、DOM操作
   把文档加载进去,然后把每个部分封装成对象,我们可以操作这些对象,实现动态的改变整个页面。 
 
 
  
  
 
  
  1.Document对象 
 
 
  
  
  如果您希望访问 HTML 页面中的任何元素,那么您总是从访问 document 对象开始。 
 
 
  
  
  查找HTML元素: 
 
 
 -  
   getElementById根据id属性获取,返回单个Element对象
-  
   getElementsByTagName根据标签名获取,返回Element对象数组
-  
   getElementsByClassName根据class属性获取,返回Element对象数组
-  
   getElementsByName根据name属性获取,返回Element对象数组
 
  <body> 
 
 
  
  
  <h2>通过 Id 查找 HTML 元素</h2> 
 
 
  
  
  <p id="intro">Hello World!</p> 
 
 
  
  <p>此示例演示了 <b>getElementsById</b> 方法。</p> 
 
 
  
  
  <p id="demo"></p> 
 
 
  
  
  <script> 
 
 
  
  var myElement = document.getElementById("intro"); 
 
 
  
  document.getElementById("demo").innerHTML = 
 
 
  
  "介绍段落的文字是" + myElement.innerHTML; 
 
 
  
  </script> 
 
 
  
  
  </body> 
 
 
  
  
  
 
  
  改变HTML元素: 
 
 
 |  
      属性 
      |  
      描述 
      | 
|  
      element.innerHTML = new html content 
      |  
      改变元素的 inner HTML 
      | 
|  
      element.attribute = new value 
      |  
      改变 HTML 元素的属性值 
      | 
|  
      element.setAttribute(attribute, value) 
      |  
      改变 HTML 元素的属性值 
      | 
|  
      element.style.property = new style 
      |  
      改变 HTML 元素的样式 
      | 
 
  添加删除元素: 
 
 
 |  
      document.createElement(element) 
      |  
      创建 HTML 元素 
      | 
|  
      document.removeChild(element) 
      |  
      删除 HTML 元素 
      | 
|  
      document.appendChild(element) 
      |  
      添加 HTML 元素 
      | 
|  
      document.replaceChild(element) 
      |  
      替换 HTML 元素 
      | 
|  
      document.write(text) 
      |  
      写入 HTML 输出流 
      | 
 
  添加事件: 
 
 
 |  
      方法 
      |  
      描述 
      | 
|  
      document.getElementById(id).onclick = function(){code} 
      |  
      向 onclick 事件添加事件处理程序 
      | 
 
  2.Element对象 
 
 
  
  
 
  
  3.插入删除节点 
 
 
  
 
   插入 
 
 
  
  
 
  
 
 
   删除 - 父删子,不能自己删自己 
 
 
  
  
 
  
  4.DOM表单操作 
 
 
  
  
 
  
      <div> 
 
 
  
          <form action="#" method="get"> 
 
 
  
              姓名:<input type="text" name="username" id="username"><br> 
 
 
  
              女<input type="radio" name="sex" value="female" id="female" checked="true">男<input type="radio" name="sex" value="male" 
 
 
  
                  id="male"><br> 
 
 
  
              故乡:<select name="city" id="city"> 
 
 
  
                  <option value="1" id="shanghai">上海</option> 
 
 
  
                  <option value="2" id="beijing">北京</option> 
 
 
  
                  <option value="3" id="suzhou">苏州</option> 
 
 
  
                  <option value="4" id="guangzhou">广州</option> 
 
 
  
              </select><br> 
 
 
  
              <input type="submit"> 
 
 
  
          </form> 
 
 
  
      </div> 
 
 
  
  
  </body> 
 
 
  
  
  
  // 获取/设置表单的value信息 
 
 
  
  var username = document.getElementById("username"); 
 
 
  
  username.value = "张三"; 
 
 
  
  console.log(username.value); 
 
 
  
  
  //获取单选框选择状态,或设置选择状态 
 
 
  
  var sexObj = document.getElementsByName("sex") 
 
 
  
  for (var i = 0; i < sexObj.length; i++) { 
 
 
  
      console.log(sexObj[i].value + " " + sexObj[i].checked); 
 
 
  
  } 
 
 
  
  
  //设置下拉框 
 
 
  
  var select = document.getElementById("city"); 
 
 
  
  select.selectedIndex = 2; 
 
 
  
  
  
  //设置禁用 
 
 
  
  var sex = document.getElementById("male"); 
 
 
  
  sex.disabled = true; 
 
 
  
  
  
  5.常见DOM事件 
 
 
  
  
 -  
   单击事件
 
  var btn = document.getElementById("btn"); 
 
 
  
  btn.onclick = function(){ 
 
 
  
      var ele = document.getElementById("h1"); 
 
 
  
      ele.style.color="red"; 
 
 
  
  } 
 
 
  
  
  
 -  
   焦点事件
 
      <div> 
 
 
  
          用户名:<input type="text" id="username"><span id="info"></span> 
 
 
  
      </div> 
 
 
  
  
  var userEle = document.getElementById("username"); 
 
 
  
  var info = document.getElementById("info"); 
 
 
  
  
  //获得焦点 
 
 
  
  userEle.onfocus = function () { 
 
 
  
  
      info.innerHTML = "请输入6-8位" 
 
 
  
  } 
 
 
  
  
  //失去焦点 
 
 
  
  userEle.onblur = function () { 
 
 
  
      var reg = /^\w{6,8}$/; 
 
 
  
      var result = reg.test(userEle.value) 
 
 
  
      if (result) { 
 
 
  
          info.innerHTML = "验证成功" 
 
 
  
      } else { 
 
 
  
          info.innerHTML = "验证失败" 
 
 
  
      } 
 
 
  
  } 
 
 
  
  
 -  
   改变事件
 
      <select name="city" id="city"> 
 
 
  
          <option value="suzhou">苏州</option> 
 
 
  
          <option value="shanghai">上海</option> 
 
 
  
          <option value="beijing">北京</option> 
 
 
  
      </select> 
 
 
  
  
  var city = document.getElementById("city"); 
 
 
  
  city.onchange = function () { 
 
 
  
      console.log(this.value); 
 
 
  
  } 
 
 
  
  
 
 -  
   鼠标移入移出事件
 
  <head> 
 
 
  
      <meta charset="utf-8"> 
 
 
  
      <style> 
 
 
  
          .red { 
 
 
  
              background-color: red; 
 
 
  
          } 
 
 
  
  
          .blue { 
 
 
  
              background-color: blue; 
 
 
  
          } 
 
 
  
      </style> 
 
 
  
  </head> 
 
 
  
  
  <body> 
 
 
  
      <div id="test" class="red">Hello World</div> 
 
 
  
  
  </body> 
 
 
  
  
  
  var ele = document.getElementById("test"); 
 
 
  
  //移入 
 
 
  
  ele.onmouseover = function () { 
 
 
  
      ele.setAttribute("class", "blue"); 
 
 
  
  } 
 
 
  
  //移出 
 
 
  
  ele.onmouseout = function () { 
 
 
  
      ele.setAttribute("class", "red"); 
 
 
  
  } 
 
 
  
  
 -  
   页面加载事件
 
  <head> 
 
 
  
      <meta charset="utf-8"> 
 
 
  
      <script> 
 
 
  
          window.onload = function(){ 
 
 
  
              //正常是无法拿到,因为在元素没加载完成,但是在这可以 
 
 
  
              var ele = document.getElementById("test"); 
 
 
  
              console.log(ele); 
 
 
  
              console.log("页面加载完成"); 
 
 
  
          } 
 
 
  
      </script> 
 
 
  
  </head> 
 
 
  
  
  <body> 
 
 
  
      <div id="test">Hello World</div> 
 
 
  
  
  </body> 
 
 
  
  
 -  
   表单事件
 
  <body> 
 
 
  
      <form action="#" id="form"> 
 
 
  
          <input type="text" name="user" id="user" placeholder="Please enter user name..."> 
 
 
  
          <input type="text" name="password" id="password" placeholder="Please enter password..."> 
 
 
  
      </form> 
 
 
  
      <button id="submit">submit</button> 
 
 
  
      <button id="reset">resest</button> 
 
 
  
  
  </body> 
 
 
  
  
  var form = document.getElementById("form"); 
 
 
  
  var submit = document.getElementById("submit"); 
 
 
  
  var reset = document.getElementById("reset"); 
 
 
  
  
  submit.onclick = function () { 
 
 
  
      form.submit(); 
 
 
  
  } 
 
 
  
  
  reset.onclick = function () { 
 
 
  
      form.reset(); 
 
 
  
  } 
 
 
  
  
  
  
  6.BOM常用对象 
 
 
  
  
 
 
   Window 
 
 
  
  
  
 
   Location 
 
 
  
 
 
   History 
 
 
  
 -  
   history.back() - 等同于在浏览器点击后退按钮
-  
   history.forward() - 等同于在浏览器中点击前进按钮
十三、原型
 
  原型 
 
 
  
 
   有时,您希望向所有给定类型的已有对象添加新属性(或方法)。 
 
 
  
 
   有时,您希望向对象构造器添加新属性(或方法)。 
 
 
  
  
  function Person(first, last, age, eyecolor) { 
 
 
  
  this.firstName = first; 
 
 
  
  this.lastName = last; 
 
 
  
  this.age = age; 
 
 
  
  this.eyeColor = eyecolor;} 
 
 
  
  
  Person.prototype.nationality = "English"; 
 
 
  
  
  
  
  function Person(first, last, age, eyecolor) { 
 
 
  
  this.firstName = first; 
 
 
  
  this.lastName = last; 
 
 
  
  this.age = age; 
 
 
  
  this.eyeColor = eyecolor;} 
 
 
  
  
  Person.prototype.name = function() { 
 
 
  
  return this.firstName + " " + this.lastName;}; 
 
 
  
  
  
 十四、JS版本
 
  JS2015(es6) 
 
 
  
 -  
   let
 
 
 -  
   const
   const 语句允许您声明常量(具有常量值的 JavaScript 变量)。 
 
 
  
 
   常量类似于 let 变量,但不能更改值。 
 
 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  



















