无标题文章

   
JavaScrip

脚本语言:

特性:松散(对于开发者的要求低)

  如:定义变量

严禁语言: int a=30;

松散语言:var a= 30;永远不会认为开发者写代码有问题

分类:

ECMAScript:

计算机协会统一标准 只包含了基础语法部分

版本区别{

ECMASrcipt5(包含5)之前

ECMASrcipt6(ECMASrcipt2015 简称 ES6)包含了所有语言

TypeScript(简称TS)

微软出的js语言>js的超级

ECMASrcipt(语言基础)

DOM、BOM操作:

DOM:操作页面中的元素对象(标签)

批量创建

逻辑

交互

BOM:浏览器的操作

上一页下一页

历史记录

刷新

webapl{

webSocket(及时通讯)

音频播放器

游戏(canvas)

webVR

游戏引擎:coco    白鹭  微信小游戏

              ECMASrcipt

语言基础

1.基础语法:

预备知识:

(1)语句:通常一行代码如添加一分号为一条语句

使用英文分号分隔

  (2)变量:目的通过一个名字来表示一个可以改变的值定义方式:var空格 变量名=值  不赋值  var空格 变量名 war:为关键字 

变量名:开发这起的一个名字

变量名的命名规则:

不能使用关键字定义变量名

不能以数字开头

不能以特殊符号开头

定义变量名要有意义:

驼峰命名法:第一个首字母小写其他首字母大写

下划线命名法

关键字(是由语言本事提供的名字,有固定意义的。如var就是定义变量的):var  for while if static let等

意义:

变量名:开发者起的名字 外号  标记

值(具体内容):数字 文字(字符串)数组 对象

(3)

2.opp(面向对象)

JS的引入方式

1.<script>

var a=30;

<script>

2.<script src="js文件位置"> <script>

注释:

单行:Ctrl+/

多行:ctrl+shift+/

运算符:

算数运算:+ - * / %(取余)必须数字与数字之间运算

数据类型:

Number:数字类型包含浮点和整数

String:字符串类型只要是使用双引号或单引号包裹的

boolean:波尔类型;true(对)false(错)

Array :数组

Object:对象

Function:函数

数据类型的转换:

字符串转数字:

转数字:parseLnt()

转浮点:parseFloat如果使用小数精度丢失{

不要直接使用小数

一定要使用:1.乘以100倍精准的级别

}prompr()

输入内容:

使用代码输出变量

没实际意义知识在控制台输出一下变量

console.log(a)日志

console.warn(a)警告

console.info(a)详细详细信息

调试方法:

1.console.log(a);日志

2.断点调试:在程序中打点组织继续执行

首先根据经验定位到大概错误位置然后打开浏览器中

的Sources点击要调试的js文件

在怀疑有错误的地方点个点(打断点

程序重新运行会在断点位置停止

->鼠标移动到断点上面的变量

->就会显示变量的值

如果继续拍错可以打多个断点

通过播放键跳到下一个断点

通过下一步执行下一步代码

复合运算符:

+= :var a=10;

    var b=20;

    a = a+=b;

-=:var a=10;

    var b=20;

    a = a-=b;

*=:var a=10;

    var b=20;

    a = a*=b;

/= :var a=10;

    var b=20;

    a = a/=b;

%=:var a=10;

    var b=20;

    a = a%=b;

++:自己给自己增加一个1加加减减在前先做自增减在做其他运算

加加减减在后先做其他运算(或别的操作)在做自增减

  --:自己给自己减少一个1

对比运算符:结果为Boolean类型的值分别为true和false。(> < >= <= ==(忽略数据的类型如:1=“1”) === (严格查看数据类型的必须类型与值都相同的如:1与“1”为不相同)!=(不等于不区分数据类型如:1与“1为相同”)!==(区分数剧类型如1与1“1”为不相同))

案例:d

分支结构:

if(条件)

当条件满足执行此内容

if(条件){

}else{

if(条件){

}else if(条件){

}else{

三元运算(三目运算):

经常会代替if else语句

常用代码:if(睡觉){

                              做梦


                        }else{

掌握三元运算

    }

三元运算:条件?满足执行,不满足不执行

//随机数

//Math 数学函数

//random 随机函数

var num3=Math.random();

console.log(num3);

逻辑运算:

与(&&):所欲条件都必须满足才算真的;

或(||):两个条件中只要有一个条件满足就为真;

非(!):黑白颠倒,对的就是错的,错的就是对的。

表示为真

* true

* 1

* 由内容的字符串“xx”

* 有值的对象

* 表示为假的

* 0

* false

* null

* nudefineded

* NAN

* 空字符串“”

switch:选择其中的某一个点子(case)

switch(变量){

case值1:

break;

case值2:

break;

default:

break:不是强制添加如果不添加break程序会继续执行下面的条件。

循环结构:

1、知道循环次数(for)

for(var i=0; i<5; 1++){

var i=0;初始化变量;

i<5;循环的条件;

i++;更改变量的值

for循环的执行流程

continue:

从continue的开始部分跳出循环

continue前的不会跳过

道循环次数(while)

while:while(条件){循环体};

do while:不管条件漫步满足先执行一次循环(计入总循环次数)公式:do {  }while ()

例: var index=0;

  do {

document.write("1212");

document.write("<br>");

index++;

if (index>10)break;

  }while (1)

函数

具备某些工能的工具

四种类型:

有返回值:

带参数

不带参数

无返回值:

带参数

不带参数

function hanShuMing(函数名)(    ) {

    alert("函数")

}

调用函数

hanShuMing():

2.var xx=function (    ) {

    函数体

console.log("xxxxxx")

}

调用函数体—>函数体的代码才会执行

xx(    );

内置函数{

console.log()

alert()

Math.radom()

prompt()

参数:

形式参数:形参没有实际意义代表着即将传进来的实参。

实际参数:实参是个实实在在的一个值

作用域:概念 ——》变量起作用的范围

局部变量:作用域只在定义的函数体里面,在函数外面是不可以使用的。

全局变量:

自执行函数:自执行函数 解决作用域的问题(防止多个js文件间变量的互相影响)

(function () {

var num=20;

})()

返回值:带返回值的函数是是什么?返回值是什么函数就表示的是什么

function x(){return}

return(值):放到函数中:

return有值时:有返回值的函数

return没值时:跳出函数

              数组

概念:有序排列的集合

标识数组中元素位置的叫做下标或索引;

下标;可以通过下标找到数组中的元素,可以通过下标改变这个位置的值;

数组中下标是从0开始的;

创建数组:字面量的方式var a=[    ];

                                var b=[  "悟空 ",“八戒”,“和尚” ]

通过类名创建数组:var arr= new Array(  )

获取数字中的元素:数组名[ 下标 ];var a=["王八","乌龟","甲鱼","鳖"];

var b=a[1];

a[0]="健权";

替换(修改)数组中的元素:数组名[下标]=新值;

遍历数组(把数组中的元素逐个读取出来):for循环,forEach;

数组

1.属性:长度:(数组名:length):数组中有多少个元素->数字是多少

2.方法

在数组中最后一个位置插入(删除)数据:

1.插入数据:数组名+点+push

2.删除数组中最后一个;数组名+点+pop;

在数组中第一个位置插入(删除)数据:

1.插入输入unshift

2.删除数据shift

翻转数组(把数组中的元素顺序颠倒):reverse:会返回一个新的数组

如:var ss=[22,33,77]

var ww=ss.reverse(  );

document.write(ww)

document.write("<br>");

合并数字;(concat)把两个或多个数组合并成一个新的数组

数组排序:(sort)数组+点+函数(a,b,){return a>b;}

数组转字符串:

1.toString(万能法)

2.join(“”)

在数组中插入一个元素:splice:公式:数组名+点splice(插入位置(下标),删除元素数量,插入的元素(数据是什么))

删除元素:splice公式:数组名+点 splice(删除元素位置,删除元素数量)->返回的数组为删除的那些元素

截取数组:slice:公式:数组名+点+slice(开始下标,结束的下标)

              字符串

属性:长度(lenght)

方法:

1.字符串转数组:split:

2.替换字符串:replace(查询的字符串,替换的字符串)->会得到一个新的变量

3.查询字符串:search:(查询的内容)正数和0为查询到第一个数的位置-1为没有查询到

4.toLowerCase(转小写):

5.toUpperCase(转大写):

6.查询某个字符在源字符串的位置(indexOf)

7.查询某个位置的字符(charAt)

8.截取(slice)

9.查询字符串:(match)可用正则

正则表达式:

input:value:输入框的输入值

DOM:获取DOM(html)元素:document.querySelector(点+选择器的名字)

DOM

获取DOM元素

1.

document.querySelector("选择器的名字")

2.

3.

4.

创建DOM元素

删除DOM

清空DOM

插入文本

插入HTML

添加事件:鼠标事件.键盘事件.拖拽事件

                        日期

日期对象

Date:创建日期对象:获取当前日期;var data=new Date(  )

new:是通过类名创建的对象

Date:是个日期类

通过日期类创建一个当前的日期

笔记截图

获取周日:周日为0;周一为1。。。。。

        定时器(单位毫秒)

不可以重复使用多个定时器否则定时器的时间会叠加

用完要删除定时器

删除延迟定时器clearTimeOut(标记)

1.延迟执行:

var 标记 =  setTimeout(执行函数,延迟时间)

var bg=document.querySelector(".bg")

var setu=setTimeout(function () {

  bg.style.background="yellow"

  清除定时器

  clearTimeout(setu);

},1000*2);

2.重复执行

js的引入方式;

1.在head中引入(还未在HTML标签就在js中查-》查不到)

2.在body结束标签上面引入(可以避免查找不到HTML)

                      DOM

1.查询DOM元素:

(1)document.querySelector(“选择器的名字”)

特点:查找的是第一个元素

(2)document.querySelectorAll(“选择器”)

特点:查找伪数组

(3)ID选择器不需要加#document.getElementById

特点:查找ID

类选择器

(4)通过类选择器  getElementsByClassName("")

(5)document.getElementsByTagName("div")

特点-伪类数组

2.创件DOM的方法

(1)document.createElement(  "标签的名字")

3.DOM的操作

(1)把DOM放到父元素里面,

公式:父元素+点+appendChild

( 2  )删除元素

( 3  )替换元素

  ( 4 )  复制元素:cloneNode(  )

4设置DOM的样式:

1.获取编译完成的样式(css里面的样式)getComputedStyle(dom)

公式DOM.style

5.设置元素的属性

(1)dom元素点属性名=属性值

查询:dom元素点属性名

(2)dom元素点setAttribute(属性名)

查询DOM元素点getAttribute(" ")

设置属性:setAttribute·

读取属性:getAttribute

//设置类选择器的名字

.className="ttt"

                    事件

1.鼠标事件

(1)点击事假:onClick

dom.onClick=function(事件对象){}

(2)移动事件:onmousemove:鼠标的时间对象

pageX:光标在页面X轴的位置

pageY:  光标在页面y轴的位置

(3)鼠标移入事件

onmouseover:先调用

onmouseenter:后调用

(4)移除的事件

onmouseseleave:先调用

onmouseout:后调用

2.键盘事件

(1)onkeydown:(按下键盘触发的事件)

dom.onkeydown=function(){}

(2)onkeyup:键盘按下抬起时触发

(3)onkeypress:按键盘就触发

当键盘事件触发的时候会获得一个事件对象(Event)

code:区分按下的是哪个键

keycode:区分按下的是哪个键

3.状态事件

input的状态:光标闪烁的状态(onfocus),失去光标的时候(onblue),里面文字发生改变的时候(onchange,)只要用户输入就会改变(oninput)

JSON对象:(json是一种数据格式,没有语言限制)

数据格式:{

"键":值,(由逗号分隔开)

"键":[1,2,3,4,],

js里面的JSON对象

{由    键:值,

          键:值

XML:(数据格式没有语言限制)很类似与HTML格式

                          事件监听

1.添加监听事件:

dom点addEventListener(“事件名”,函数)

2.移除监听事件:

dom点remoerEventListener("事件名",函数)

事件技巧:

1.阻止元素的默认行为

event.preventDefault()

例:去掉a标签刷新页面(跳转)页面的功能

表单标签里面的<input type="submit"><input type="rest">


2.事件冒泡或捕获

事件冒泡:是从内向外触发(默认行为为事件冒泡)

事件捕获:从外向内触发

Event所有事件的先祖

MouseEvent

keyboardEvent

function f1(a,b) {

        //arguments是传入进去的全部参数(参数列表)->数组

        console.log(arguments[0])

        console.log(a)

    }

    f1(3,6,9,10)

    f1(83,6,9,10,77)

    f1(13,6,9,10,77,3,77,98)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,492评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,048评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,927评论 0 358
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,293评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,309评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,024评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,638评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,546评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,073评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,188评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,321评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,998评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,678评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,186评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,303评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,663评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,330评论 2 358

推荐阅读更多精彩内容

  • JAVA面试题 1、作用域public,private,protected,以及不写时的区别答:区别如下:作用域 ...
    JA尐白阅读 1,156评论 1 0
  • 声明式渲染 Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统 {{ mes...
    dfe8296e7652阅读 232评论 0 1
  • 网页基础总结(4) 一.网页基础 1.选择器优先级关系 !important>ID>类>元素 内联样式表>嵌入>外...
    糖心m阅读 216评论 0 0
  • var new_arrary = arr.filter(callback[, thisArg]) >fil...
    君当日胜贵阅读 336评论 0 0
  • [toc] ##1、基础知识>ECMAScript(ES):规定了JS的一些基础核心的知识(变量、数据类型、语法规...
    Bazinga2019阅读 185评论 0 0