JavaScript

DOM

JSON

Fetch API(Request/Response/Ajax)

Modern JS(ES6)

规范:web服务器对大小写敏感,文件夹和文件名使用小写。文件名如果要分离单词,最好使用横线,而不用下划线。网站结构:index.html:通常包括主页内容,第一次进入网页的地址。images:保存图片scripts:保存jsstyles:样式css

<script>部分没必要非要放在文档头部;实际上,把它放在文档给的尾部,在</body>标签之前是一个更好的选择,这样可以确保加载脚本之前浏览器已经解析了HTML内容。
初始化变量:建议尽可能多使用let,而不是var
变量命名规则:小写驼峰命名法 myName

<script>部分没必要非要放在文档头部;实际上,把它放在文档给的尾部,在</body>标签之前是一个更好的选择,这样可以确保加载脚本之前浏览器已经解析了HTML内容。
初始化变量:建议尽可能多使用let,而不是var
变量命名规则:小写驼峰命名法 myName
字符型转换为整型 parseInt(value,类型) 类型可以是2,8,10,16

整型转换为字符型 a.toString(类型)

AJAX:
post是发送,get是获取
比如你要将记录保存到服务器用post
如果你要从数据库中读取记录用get

手册:
https://developer.mozilla.org/zh-CN/docs/Web

CSDN学院视频:
http://edu.csdn.net/course/play/3091/51864

lesson1:
.JS特效--鼠标提示框
属性 div的dislay none和block
方法 mouseover mouseout
操作方法 document.getElementById('div1').display='none'
函数:script里面
function 函数名()
{
//代码        
}
重用:document.getElementById('div1')直接赋予一个变量
          var oDiv=document.getElementById('div1');

lesson2:
 css控制

 <link id="link1" rel="stylesheet" type="text/css" href="css1.css" />
  if语句
  =赋值
  ==判断是否相等
   classname

lesson3:
函数传参
操作属性方法:第一种方法:.属性   第二种方法:['value']
变量和字符串的区别:变量不固定 字符串是固定的

lesson4:
style  1.从style加样式--加在行间样式  2.从style取样式-- 行间
style和className:style优先级高  一般修改一种
提取事件:js设置onclick事件 oBtn.onclick=函数名;
事件:1.函数名 然后加到对应按钮   2.匿名函数 直接事件后面跟上
js代码放在body和head:head里面执行的时候,还未找到对应的控件
window.onload:页面加载完毕后执行
window.onload=function () {


 oBtn.onclick = function () {

            alert('点击了按钮')

        };
};
行为 样式 结构 三者分离
获取一组元素:getElementsByTagName 结果数组
循环 for while 初始化 条件 自增 语句
true/false:布尔值



lesson5:
选项卡
this:当前发生事件的元素
innerHTML:设置html元素
字符串相加:alert('a'+12+5+'cd') 输出 a125cd
数组:var a=[1,2,3,4]; a.length a[0]
为html加index

lesson6:
JS组成:
     ECMAScript翻译--核心解释器 --几乎没有兼容性问题
     DOM:documnet object model  赋予操作HTML的能力  文件documnet
                  有一些操作不兼容
     BOM:browser object model 赋予操作浏览器的能力   窗口window
                   完全不兼容
变量类型:typeof  有:number string bool object 
变量类型转换:parseInt 转成整型
                     //NaN   not a number 非数字
                    parseFloat 转成浮点型
强制类型转换--显示类型转换
隐式类型转换--自动转换
变量作用域:局部变量 全局变量 
闭包:子函数可以使用父函数的变量
命名规范:可读性;变量取名:类型前缀+首字母大写  oDivUserLogin 
     i interger; o object;a array;b bool;f float;
     fn function;re regexp 正则表达式;v variant变体变量
运算符:算术+ - * / %  其中%取模 实例隔行变色
               赋值:=,-=,++:i=i+1; i+=1;
               关系:> < == !=  <= >= ===
               逻辑:&& || ! 与或非
流程控制:判断 if switch ?:
               ?: 三目运算符 条件?语句1 : 语句2
                  循环:while for 数组循环 for 0-len ;json for ( in )
                  跳出:break continue
                  真假:
JSON:{a:12,b:5,c:'abc'}  json['a'] 循环 for(var i in json)

lesson8:
函数返回值:return 没有return等
函数传参:
          arguments 可变参数 
          css(oDiv,'width') 获取样式
          css(oDiv,'width','200px') 设置样式
获取非行间样式:style操作行间样式
           IE: currentStyle获取费非行间样式
           chrome firefox: getComputedStyle(oDiv, false).width);
            css样式:复合样式、单一样式
数组高级用法:
     length 既可以获取又可以设置 例如快速清零
     添加:
          push 末尾开始添加
          unshift 头部添加
     删除:
          pop 末尾开始删除
          shift 头部删除
     插入:
          splice(开始 长度) 删除元素
          splice(开始 长度 'a’'b')先删除再插入
     连接:
          concat:a.concat(b)
          join:a.join('a') 连接符号
                    var arr=[1,2,3] arr.join('-') 输出 1-2-3-4
     排序:
          sort:arr.sort(); 数字排序的依据是首字母
                    arr.sort(function(n1,n2){
                             //语句
                                   });

lesson9:
定时器:
          setInterval(show,1000);每隔1s调用show函数,一直执行
          setTimeOut(show,1000);执行一次
          停止定时器:
          clearInterval(定时器名);
          clearTimeOut(定时器名);      
          例子:数码时钟--每隔一秒 时间改变 

时间日期:
var oDate=new Date();
getFullYear() 获取年
getMonth() 获取月 //获取月份少了1
getDate() 获取日
getDay() 获取星期// 0 周日 1 周一----6 周六
getHours() 获取小时数据
getMinutes() 获取分钟数据
getSeconds() 获取秒

字符串  var sting1=‘1234’; string1[0] 获取1 这种方法不兼容低版本
               charAt(i) 兼容所有版本  time.charAt(i)


延时提示框:qq头像资料框

lesson10:
无缝滚动:div动态 设置 position:absolute;left:100px;
                    this.offsetLeft获取div最终的位置的left
                    this.offsetTop width height
                    定时器调用,是图片运动

lesson11:
DOM:标签CSS 元素JS 节点DOM-document
兼容性  IE 10%  Chrome 60%  Firebox 99%
元素属性操作:
     子节点 childNodes ---包括元素和文本
                children--只包括元素
                firstChild---首节点 包括元素和文本
                firstElementChild---首节点 只包括元素

     nodeType 子节点类型  ==3 文本节点; ==1 元素节点
     父节点 parentNode---查找元素的父节点
     offsetParent 获取页面的实际位置

    元素属性操作:
    第一种:oDiv.style.display='block';
    第二种:oDiv.style['display']='block';
    第三种:dom的方式
            获取元素 oTxt.getAttribute('value');
            设置元素 oTxt.setAttribute('value','abc');
            删除元素 oTxt.removeAttribute('value');
   DOM批量选取元素:className  封装函数getByClass

lesson12:
DOM操作应用
    创建DOM元素:createElement('标签名')  
                              appendChild(子节点)  添加到父节点末尾,原来的删掉
     插入DOM元素:insertBefore(子节点,在谁之前) 父级
     删除DOM元素:父节点.removeChild(具体节点)

文档碎片:
创建:document.createDocumentFragment  不常用

lesson13:
表格:
    tbody:自动会增加---一般主动写上 <td>列 <tr>行
                tHead 唯一表头
                tFoot 唯一表尾
                tBodies 找到所有tbody 不添加时会自动增加
                rows 找到所有行
                cells 找到所有列
       表格的添加、删除一行:
       表格搜索:大小写转换 toLowerCase
                         模糊搜索 search 找到并且返回字符串出现的位置 -1没找到
                         模糊搜索 split
                            高亮  筛选
        表格排序:li排序 sort(function(li1,li2){ })


lesson15:
JS运动基础:
    运动框架--1.在开始运动前,关闭已有定时器;2.把运动好停止用if/else隔开
            例子:分享到  淡入淡出图片(获取透明度:alpha)
    缓冲运动:控制速度 
                   Math.ceil(3.01)---向上取整---4
                   Math.floor(4.5)---向下取整---4
                    例子:滚动条抖动
                                document.clientHeight 屏幕可视区域
                                右侧悬浮框和对联

lesson20:
JS事件:
event对象:鼠标位置和键盘按键 function(ev)
                    document:chlidNodes[0].tagName
                    点击的坐标:event.clientX ---横坐标
                                         event.clientY ---纵坐标
                                不兼容 火狐浏览器 ev
            兼容写法         
            var oEvent = ev || event;   
                           事件流:事件冒泡
                                          取消:oEvent.cancelBubble=true;                           
鼠标事件:鼠标坐标 onmouseover onmousemove
                  event.clientX --可视区域的X
                  event.clientY --可视区域的Y
                  div的高度,是整个页面的高度 clientX +scrollTop 
                  scrollTop  =document.scrollTop||body.scrollTop

键盘事件:KeyCode
                onkeydown---键盘按下
                ctrlKey---ctrl按下
                shiftKey---shift按下
                altKey---alt按下

  默认行为:浏览器自带的行为
                    1.右键菜单 屏蔽  contextmenu  阻止 return false
                    2.自定义右键菜单 先阻止,然后自定义
                    3.只能输入数字的输入框
                         onkeydown 键盘按下阻止 return false
                        keyCode 0-48 9-57

   拖拽:鼠标按下 onmousedown
              鼠标移动 onmousemove
              鼠标松开 onmouseup---取消移动事件

JS事件高级应用:
    事件绑定:
                    attachEvent(事件名字,函数)---绑定事件---不兼容chrome
                    addEventListener(事件名,函数,false)---不兼容IE
                    if(oBtn.attachEvent){}else{}

    高级拖拽:
    自定义滚动条:

lesson24:
AJAX: js读取服务器的数据
            读取静态文件,编码方式注意utf8
            缓存:浏览器访问的缓存 IE特别严重 
                       阻止缓存:文件后面?时间戳
            读取动态数组:eval(str)字符串转成数组
            读取json:[{x:0,y:50,z:80}]
HTTP请求方式:
            get :通过网址 容量小 安全性差 有缓存  获取数据
            post:不通过网址  容量大2G 安全性好一点 没有缓存 上传数据
自己编写ajax:(类似打电话 手机 连接 说 听)
            1.创建ajax对象--
       非IE6: var oAjax = new XMLHttpRequest();
       IE6:    var oAjax = new ActiveXObject("Miscrosoft.XMLHTTP");
            2.连接到服务器--
            3.告诉服务器,要啥文件,发送请求--
            4.接收返回值--

lesson25:
变量和属性:全局变量  a ==window.a









W3C:
http://www.w3school.com.cn/js/index.asp


freecodecamp:
网站学习
https://freecodecamp.cn/challenges/comment-your-javascript-code

1.comment your javascript code
注释代码
//  单行注释
/*  */  多行注释

2.decalre javascript variables
js提供七种不同的data types数据类型:
undefined 未定义
null 空
boolean 布尔型
string 字符串
symbol 符号
number 数字
object 对象

3.understanding case sensitivity in variables
JS中所有变量都是大小写敏感的。
使用驼峰命名法来书写变量,变量的第一个单词首写字母小写,后面的单词第一个字母大写。
var thisName="Tina";

4.quoting strings with single quotes
JS中的字符串用单引号或双引号来包裹它。
双引号包裹的时候,需要用斜杠双引号来转义,有时难以阅读;
这时候可以用单引号包裹,双引号就不用转义。
var myStr = '<a href="http://www.example.com" target="_blank">Link</a>';

5.escape sequences in strings
字符串中的转义序列
\' 单引号 \" 双引号 \\反斜杠 \n换行符 \r回车符 \t制表符 \b退格符 \f换页符

6.find the length of a string
通过字符串变量或字符串后面写上.length来获取到字符串变量的长度。
lastNameLength=lastName.length;

7.store multiple values i on variable using JavaScript Arrays
数组:在一个地方存储多个数据
var sandwich=["butter","milk",12];

8.nest one array within another array
多维数组 
var ourArray = [["the universe", 42], ["everything", 101010]];

9.mainpulate arrays with push
将数据追加到一个数组的末尾,通过push()函数
var arr = [1,2,3];
arr.push(4);
// 现在arr的值为 [1,2,3,4]

10.mainpulate arrays wiht pop
改变数组中数据的另一种方法使用.pop()函数
.pop()是用来抛出一个数组末尾的值

11.mainpulate arrays with shift
改变数组中数据的另一种方法使用.shift()函数
.shift()是用来移出数组的第一个元素

12.mainpulate arrays with unshift
改变数组中数据的另一种方法使用.unshift()函数
.shift()是用来移入一个元素到数组的第一个位置
myArray.unshift(["Paul",35]);

13.write resuable javascript with functions
在JS中,我们可以把代码的重复部分抽出来,放到一个函数(functions)中。
function functionName() {
console.log("Hello World");
}

14.passing values to functions with arguments
形参即形式、实参即内容。
function testFun(param1, param2) {
console.log(param1, param2);
}

15.global vs local scope in functions
一个程序中有可能具有相同姓名的局部变量和全局变量。
在这种情况下,局部变量优先于全局变量。
var someVar = "Hat";
function myFun() {
var someVar = "Head";
return someVar;
}

16.comparison with the strict equality operator
=== 严格等于 例如 1===“1”false
==等于  例如1==“1”true

17.bulid javascript objects
对象和数组很相似,数组是通过索引来访问和修改数据。
对象是通过属性来访问和修改数据的。
var myDog = {
  "name":"myDog",
  "legs":4,
  "tails":1,
  "friends":[1,3,5]
};

18.accessing objects projecties wiht the Dot operator
两种方式访问对象属性,一个是点操作. 一个是中括号操作[]
var myObj = {
prop1: "val1",
prop2: "val2"
};
var prop1val = myObj.prop1; // val1
var prop2val = myObj.prop2; // val2

19.accessing objects properties with variables
中括号操作符的另一个使用方法是用变量来访问一个属性。
var myDog = "Hunter";
var dogs = {
Fido: "Mutt", Hunter: "Doberman", Snoopie: "Beagle"
}
var breed = dogs[myDog];
console.log(breed)// "Doberman"

20.delete properties form a javascript object
delete myDog.tails;

21.using objects for lookups
对象和字典一样,可以用来存储键/值对。
var alpha = {
1:"Z",
2:"Y",
3:"X",
4:"W",
...
24:"C",
25:"B",
26:"A"
};
alpha[2]; // "Y"
alpha[24]; // "C"

var value = 2;
alpha[value]; // "Y"

22.testing objects for properties
检查对象属性是否存在,可以用.hasOwnProperty(propname)

23.introducing javascript object notation json
简称JSON,它使用js对象来存储数据。
var ourMusic = [
{
"artist": "Daft Punk",
"title": "Homework",
"release_year": 1997,
"formats": [
"CD",
"Cassette",
"LP" ],
"gold": true
}
];

24.accessing nested arrays in json
json对象可以嵌套对象和数组。与访问嵌套对象一样,用中括号操作同样可以嵌套数组。
// 初始化变量
var myPlants = [
  {
    type: "flowers",
    list: [
      "rose",
      "tulip",
      "dandelion"
    ]
  },
  {
    type: "trees",
    list: [
      "fir",
      "pine",
      "birch"
    ]
  }  
];

var secondTree = myPlants[1].list[1]; // 请修改这一行

25.generate random fractions with javascript
计算机行为只有两种,确定性和随机性。
Math.random()用来生成0-1包括0不包括1之间的随机小数。

26.generate random whole numbers with javascript
Math.random()随机小数 例如*20 
Math.floor()向下取整     例如0-19之间的整数

27.generate random whole numbers within a range
生成随机数在0到某个数之间,我们要生成的随机数是在2个指定数之间
function ourFunction(ourMin, ourMax) {

  return Math.floor(Math.random() * (ourMax - ourMin + 1)) + ourMin;
}

ourFunction(1, 9);

28.shift through text with regular expressions
regular expressions 正则表达式被用来根据某种匹配模式来寻找string中的某些单词
regular expressions分成几段:
/ 头部
the 匹配的模式
/ 尾部
g 代表global全局,意味着返回所有的匹配而不仅仅是第一个
i 代表着忽略大小写
例如:
// 初始化变量
var testString = "Ada Lovelace and Charles Babbage designed the first computer and the software that would have run on it.";

// 举例
var expressionToGetSoftware = /software/gi;
var softwareCount = testString.match(expressionToGetSoftware).length;

29.find numbers with regular expressions
正则表达式中使用特殊选择器来选择特殊类型值
其中一个就是数字选择器\d,意思用来获取一个字符串的数字
在JS中类似于 /\d/g  
/\d+/g 它允许这个正则表达式匹配一个或者更多数字
例如:
// 初始化变量
var testString = "There are 3 cats but 4 dogs.";
var expression = /\d+/g;  // 请修改这一行
// 用 digitCount 存储 testString 中匹配到 expression 的次数
var digitCount = testString.match(expression).length;

30.find whitespace wiht regular expressions
使用正则表达式\s来选择一个字符串的空白
空白字符有 " "空字符 \r回车符 \n换行符 \t制表符  \f换页符
空白正则表达式类似于:/\s+g 
例如:
var testString = "How many spaces are there in this sentence?";
var expression = /\s+/g;  // 请修改这一行
// 用 spaceCount 存储 testString 中匹配到 expression 的次数
var spaceCount = testString.match(expression).length;

31.invert regular expression matches with javascript
可以用正则表达式选择器的大写版本来转换任何匹配
\s陪陪任何空白字符 \S匹配任何非空白字符
例如:
// 初始化变量
var testString = "How many non-space characters are there in this sentence?";
var expression = /\S/g;  // 请修改这一行
// 用 nonSpaceCount 存储 testString 中匹配到 expression 的次数
var nonSpaceCount = testString.match(expression).length;



构造函数object oriented and functional programming
1.construct javascript objects whth functions
用构造函数来创建对象
构造函数 通常使用大写字母开头,以便跟其他普通函数区分
var Car = function() {
  this.wheels = 4;
  this.engines = 1;
  this.seats = 1;
};

2.declare javascript objects as variables
js创建对象
var car = {
  "wheels":4,
  "engines":1,
  "seats":5
};

results matching ""

    No results matching ""