整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

javascript变量#前端

家好,我是天河。今天想和大家分享一下如何在应用程序中使用变量来存储值。变量是应用程序中用来作为值的符号名,其名称即为标识符。

变量就像一个盒子,盒子上贴着标签,标签上写着名字。变量可以存储各种数据类型的值,如数字、字符串、board值等。

变量的声明是通过关键字 were 创建的。在声明 number 变量时,可以使用 were number 的形式来表示其值为一加一,也可以使用非数字形式的 were,例如 were name。

通过 word 关键字可以创建一个变量,该变量的默认值为 content,通过物质表达式等于来给变量赋值。例如,可以直接物质 a=20,或者定义 were number=20。

如果需要同时定义多个变量,可以使用逗号分隔不同的变量名,例如属性=张三,a=18,属性=幺零八。

看一下效果,变量被定义为老师,等于二。如果需要同时定义多个变量,可以使用逗号分隔不同的变量名,例如 were,a=b,=c,=d,=10。

变量的声明必须遵守一定的规则,包括由字母数字下弧线、dollar符号组成,不能以数字或其他符号开头,也不能使用保留字关键字。

保留字是指不能用于变量名的特殊字符,例如形象、中文等。使用英文进行变量名命名是国际惯例,可以使用uniq字母作为变量名,例如uniq_字母。

像数字开头、其他符号、横线、关键字等都是不能使用的。同时,建议使用几个单词的命名法,并使用形容词作为前缀,例如 max cult。

在命名变量时,需要注意大小写、严格区分大写的内部和小写的内部。这两个变量的名称不同,它们不是同一个变量。变量名称中不能包含数字或其他特殊符号,例如这条横线不能使用关键字。变量名称应该由字母、数字和下划线组成,不包括汉字。不建议使用这种变量命名方式。虽然这种命名方式不会引起错误,但它不利于表达意图,也容易无意间创建全局变量。接下来看一些变量命名的规则,未声明的变量直接使用会导致错误。这种命名方式可能会影响程序的有效性和安全性,因此不建议使用。省略关键字可能会导致变量成为全局变量。如果直接调用解释器,它会自动声明变量,但这种做法不利于表达意图,而且容易创建全局变量。如果一个变量已经声明过一次,但再次声明时没有改变其值,则会导致重复声明的问题。

如果一个变量已经声明过一次,但再次声明时没有改变其值,则会导致重复声明的问题。如果一个变量已经声明过一次,但再次声明时没有改变其值,则会导致重复声明的问题。如果一个变量已经声明过一次,但再次声明时没有改变其值,则会导致重复声明的问题。如果一个变量已经声明过一次,但再次声明时没有改变其值,则会导致重复声明的问题。如果一个变量已经声明过一次,但再次声明时没有改变其值,则会导致重复声明的问题。如果一个变量已经声明过一次,但再次声明时没有改变其值,则会导致重复声明的问题。如果一个变量已经声明过一次,但再次声明时没有改变其值,则会导致重复声明的问题。如果一个变量已经声明过一次,但再次声明时没有改变其值,则会导致重复声明的问题。如果一个变量已经声明过一次,但再次声明时没有改变其值,则会导致重复声明的问题。那么我们现在打印呢?现在打印不出来了,因为全局作用率,我们在全局作用率里面是不能访问这个函数里面的变量的,函数里面的变量只能函数里面去访问外部它是访问不了的。所以不建议生命变量的时候不写位。

接下来再看一看注视。基本的有两种单行注视多行注视。注视就是像这样,单行注视的变量直接使用它是会报错的,它会报错这个是not connect,省略 the fact,这个表格表格里面你不加味,它默认它的变量会成为一个全局变量。比如这个函数里面写了,然后打印表格,对不对?按理说怎么看是不是全局的呢?就在里面输入 s t r,你看,它就能打印出来这个是全局的。

那比如说我们加二,它就不会变成全局的变量。对不对?那我们现在打印呢?你看,现在打印不出来了,因为全局作用率,对不对?在全局作用率里面是不能访问函数里面的变量、酒杯里面的变量,只能函数里面去访问,外部它是访问不了的。所以不建议,生命变量的时候不写位。

接下来再看一看注视。注视。注视是行就是两个斜杠,多行就是这样去斜,按快捷键可以去设置一下看键盘快捷键是不是?行注视对不对?把它绑定。

快注视,主要是行注视和快注视。有的时候不知道快捷键是多少,把快捷键配置打开搜索一下,把快捷键记一记。糖醋是块,醋是接下来了解一下严格模式。

javascript的严格模式是一种在解码中启用更严格解析和错误处理的模式,通过添加特定的语句来激活,主要是use strict来激活。意思就是加上这句话,内部会用更严格的解析和错误处理。比如启用严格模式之后aircraft引擎将会执行额外的检查,并对一些常见的错误进行报错。

来看严格模式。比如在非严格模式下声明变量不加味,是能打印出来的,没有报错,但是一旦加上严格模式就会报错了。比如还有什么情况?比如函数,按住res,现在打印是 on the five,严格模式下res就是指向window。然后再看一个数字,比如在严格模式下就是报错的,严格模式下就不会减析成八进字。

非严格模式下?非严格模式下看就能打印出来。怎么改?要在严格模式下改成这种以零o开头,零和o开头八金字就生效了。usb打开就生效的。以前是严格模式下是不生效的,只有非严格模式下才生效。就是养成习惯,比如说要写八进字,到现在最好以零o开头、小o和大o都可以预备。这就是所谓的严格模式和非严格模式。因为在学习的过程中,我们可能会遇到一些新东西,因此需要了解它们的含义。严格模式就是其中之一。今天的分享就到这里,感谢大家的聆听。

、关于HTML语义化,你知道都有哪些标签?

语义化就是让计算机能够快速读懂内容,高效的处理信息。搜索引擎只能通过标签来判断内容的语义,因为页面的很大一部分流量来自搜索引擎,要使页面尽可能地对搜索引擎友好,所以尽可能地使用语义化标签,如:

div是division分离,span是span范围,table是表格,ol是orderList有序列表,ul是unorderList无序列表,li是list item列表选项,html5进一步推进web语义化的发展,使用了一些新的标签有header、artical、address等。

2、HTML标签分类有哪些?都有啥特点?

  • 块级标签

默认宽度是100%

块级标签独占一行

块级标签可以使用height设置高度

常见块级标签:div、p、h1~h6、ol、ul、table、form等等。

  • 行级标签

默认宽度由内容撑开

行级标签不会自动换行,从左到右一次排列

行级标签height设置高度失效,高度由内容撑开。

常见行级标签:span、a、br、strong、lable、i、em。

  • 行内块标签

结合行级和块级的优点

可以设置元素的宽高

还可以将多个元素显示在一行从左到右一次排列。

常见行内块标签:img、input。


3、网页编码设置有几种方式?

Charset属性规定HTML文档的字符编码,常见的属性值有以下几个:

  • UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。用在网页上可以同一页面显示中文简体繁体以及其他语言。
  • GBK是汉字编码,是双字节码,可表示简体和繁体字。
  • ISO8859-2字符集,也称Latin-2,收集了东欧字符。


4、HTML的框架优缺点有哪些?

Html框架有iframe和frame两个,将多个页面通过一个浏览器窗口显示。

框架的优点:

  • 重载页面时不需要重载整个页面,只需要重载页面中的一个框架页,减少数据传输,加快网页加载速度。
  • Iframe使用简单不需要引入任何插件,主要用于不需要搜索引擎搜索的页面。
  • 方便制作导航,多个页面共用,方便开发和维护。

缺点:

  • 会产生很多页面,不容易管理。
  • 不方便打印,不能实现对frameset的打印。
  • 浏览器后退按钮失效。
  • 不利于SEO优化,不能为每个页面设置标题和关键字,影响搜索。
  • 多数小型移动设备无法完全显示框架。
  • 多框架页面会增加服务器的http请求。
  • H5已经抛弃该标签。


5、HTML5有哪些新特性,移除了哪些元素?

H5新增了图像、位置、存储、多任务等功能。

新增元素:

  • Canvas
  • video和audio元素
  • 本地离线缓存:localStorage长期存储,浏览器关闭之后数据不丢失,sessionStorage的数据在浏览器关闭后自动删除。
  • 语义化标签:artical、footer、header、nav、section
  • 位置API:Geolocation
  • 表单控件:calendar、date、time、email、search、url
  • 新技术:web worker(运行在后台的js,独立于其他脚本,不影响页面性能。可以在页面继续任何操作,此时web worker在后台运行)、web socket
  • 拖放API:drag、drop

移除元素:

  • 框架元素:frame、frameset、noframes。
  • 纯表现元素:basefont、font、center、u、big、strike、tt

Html5新增了 27 个元素,废弃了 16 个元素,根据现有的标准规范,把 HTML5 的元素按优先级定义为结构性属性、级块性元素、行内语义性元素和交互性元素 4 大类。


6、如何区分HTML和HTML5?

DOCUMENT声明方式是区分的重要元素。

  • Html声明方式:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd”>
  • Html5声明方式:<!DOCTYPE html>

根据新增加的结构、功能来区分。H5有好多新增语义化标签。


7、H5文件离线存储怎么使用,工作原理是什么?

在线情况下,浏览器发现html头部有manifest属性,它会请求manifest文件,如果是第一次访问那么浏览器就会根据manifest文件的内容下载相应的资源,并进行离线存储。如果已经访问过并且资源已经离线存储了,那么浏览器就会使用离线的资源加载页面。然后浏览器会对比新的manifest文件与旧的manifest文件,如果文件没有改变,就不会有任何操作,如果文件改变了,那么就会重新下载资源,并进行离线缓存。

页面头部加入manifest属性。如:<html manifest="demo.appcache">

在cache.manifest文件中编写离线存储的资源。


8、Cookies,sessionStorage和localStorage的区别?

共同点:都是保存在浏览器端,而且都是同源的。

区别:

  • Cookies是为了标识用户身份而存储在用户本地的数据,始终在同源http请求中携带,在浏览器与服务器间来回传递,而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。
  • 存储大小差异。Cookie保存的数据很小,不能超过4k,而sessionStorage和localStorage保存数据大,可达到5M。
  • 存储有效期不同。Cookie在设置的cookie过期前始终有效,而sessionStorage仅在浏览器关闭之前有效,localStorage始终有效,与浏览器窗口没关系。
  • 作用域不同:cookie在所有同源窗口都是共享,sessionStorage不能在不同浏览器窗口上共享,localStorage在所有同源窗口都是共享的。


9、title与h1的区别、b与strong的区别、i与em的区别?

title属性没有明确意义,只表示标题,h1表示层次明确的标题,对页面信息抓取也有很大的影响。

strong标明重点内容,语气加强含义,b表示无意义的视觉表示

em表示强调文本,i是斜体,是无意义的视觉表示

视觉样式标签:b、u、i、s

语义样式标签:strong、em、ins、del、code


10、viewport 所有属性 ?

viewport是用户网页的可视区域,使用meta设置viewport时有很多属性,分别对以下各个属性介绍

  • width :设置layout viewport的宽度,为一个正整数,或字符串'device-width';
  • initial-scale:设置页面的初始缩放值,为一个数字,可以带小数。
  • minimum-scale:允许用户的最小缩放值,为一个数字,可以带小数。
  • maximum-scale:允许用户的最大缩放值,为一个数字,可以带小数。
  • height:设置layout viewport的高度,这个属性对我们并不重要,很少使用
  • user-scalable:是否允许用户进行缩放,值为‘no’或者‘yes’。
  • target-densitydpi:值可以为一个数值或者 high-dpi 、 medium-dpi、 low-dpi、 device-dpi 这几个字符串中的一个

安卓中还支持:target-densitydpi,表示目标设备的密度等级,作用是决定css中的1px 代表多少物理像素。


11、meta标签的name属性值?

name属性主要用于描述网页,与之对应的属性值为content,content中的内容主要是便于搜索机器人查找信息和分类信息用的。

Meta标签的name属性语法格式是:

<meta name=”参数”content=”具体的参数值”>

Name主要有以下几个参数:

  • Keywords(关键字):关键字用来告诉搜索引擎你网页的关键字是什么。
  • Description(网站内容描述):描述用来浏览器你的网页主要内容是什么。
  • Robots(机器人向导):robots用来搜索机器人哪些页面需要索引,哪些页面不需要索引。
  • Author(作者):添加网页作者信息。

Content的参数主要有name的参数来决定,如果是关键字的时候,多个关键字之间使用逗号隔开,一般使用5个关键字为宜;如果是描述的时候,描述长度一般控制在200字左右;如果是索引的时候,一般使用inde、noindex、none、all,默认是all。

Low了,网页居然还用这么老掉牙的特效!弄个粗体字,下划线就是突出重点了?真是一股浓浓的乡村风扑面而来;弄个图在页面飘来飘去就是动画效果了,你要这么认为的话那我只能保持沉默了。在HTML5占领着整个互联网之时,想透过网页抓住所有人的眼球,因循守旧是行不通的。因此,有你不能不知道的HTML常用代码。只有熟悉掌握了常用的HTML代码,你才能在编写网页的时候做到行云流水,用处处流露着细腻和创意的动效细节打动所有人。

在这里还是要说一下我自己建的前端JavaScript学习交流群:574462090,不管你是小白还是大牛,小编我都挺欢迎,小白嘛,多问点问题也就学好了,不定期分享干货,包括最新的2017年前端学习资料,欢迎初学和进阶中的小伙伴。

html代码大全:结构性定义

文件类型<HTML></HTML> (放在档案的开头与结尾)

文件主题<TITLE></TITLE> (必须放在「文头」区块内)

文头<HEAD></HEAD> (描述性资料,像是「主题」)

文体<BODY></BODY> (文件本体)

标题<H?></H?> (从1到6,有六层选择)

标题的对齐 <H?ALIGN=LEFT|CENTER|RIGHT></H?>

区分<DIV></DIV>

区分的对齐 <DIVALIGN=LEFT|RIGHT|CENTER|JUSTIFY></DIV>

引文区块<BLOCKQUOTE></BLOCKQUOTE> (通常会内缩)

强调<EM></EM> (通常会以斜体显示)

特别强调<STRONG></STRONG> (通常会以加粗显示)

引文<CITE></CITE> (通常会以斜体显示)

码<CODE></CODE> (显示原始码之用)

样本<SAMP></SAMP>

键盘输入<KBD></KBD>

变数<VAR></VAR>

定义<DFN></DFN> (有些浏览器不提供)

地址 <ADDRESS></ADDRESS>

大字<BIG></BIG>

小字<SMALL></SMALL>

与外观相关的标签(作者自订的表现方式)

加粗<B></B>

斜体<I></I>

底线<U></U> (尚有些浏览器不提供)

删除线<S></S> (尚有些浏览器不提供)

下标<SUB></SUB>

上标<SUP></SUP>

打字机体<TT></TT> (用单空格字型显示)

预定格式<PRE></PRE> (保留文件中空格的大小)

预定格式的宽度<PRE WIDTH=?></PRE>(以字元计算)

向中看齐<CENTER></CENTER> (文字与图片都可以)

闪耀<BLINK></BLINK> (有史以来最被嘲弄的标签)

字体大小 <FONTSIZE=?></FONT>(从1到7)

改变字体大小 <FONTSIZE=+|-?></FONT>

基本字体大小 <BASEFONTSIZE=?> (从1到7; 内定为3)

字体颜色 <FONTCOLOR="#$$"></FONT>($$为颜色代码)

2

html代码大全:修改页面的实用性HTML代码

1)贴图:<img src="图片地址">

2)加入连接:<a href="所要连接的相关地址">写上你想写的字</a>

3)在新窗口打开连接:<a href="相关地址" target="_blank">写上要写的字</a>

4)移动字体(走马灯):<marquee>写上你想写的字</marquee>

5)字体加粗:<b>写上你想写的字</b>

6)字体斜体:<i>写上你想写的字</i>

7)字体下划线: <u>写上你想写的字</u>

8)字体删除线: <s>写上你想写的字</s>

9)字体加大: <big>写上你想写的字</big>

10)字体控制大小:<h1>写上你想写的字</h1> (其中字体大小可从h1-h5,h1最大,h5最小)

11)更改字体颜色:<font color="#value">写上你想写的字</font>(其中value值在000000与ffffff(16位进制)之间

12)消除连接的下划线:<a href="相关地址" style="text-decoration:none">写上你想写的字</a>

13)贴音乐:<embed src="音乐地址" width="宽度" height="高度" autostart=false>

14)贴flash: <embed src="flash地址" width="宽度" height="高度">

15)贴影视文件:<img dynsrc="文件地址" width="宽度" height="高度" start=mouseover>

16)换行:<br>

17)段落:<p>段落</p>

18)原始文字样式:<pre>正文</pre>

19)换帖子背景:<body background="背景图片地址">

20)固定帖子背景不随滚动条滚动:<body background="背景图片地址" body

bgproperties=fixed>

21)定制帖子背景颜色:<body bgcolor="#value">(value值见10)

22)帖子背景音乐:<bgsound="背景音乐地址" loop=infinite>

23)贴网页:<iframe. src="相关地址" width="宽度" height="高度"></iframe>

3

html代码大全:常常会遇到的问题

点击关闭窗口

<a href="javascript.:top.window.close();">点击关闭窗口</a>!

请问如何去掉主页右面的滚动条?

<body scroll="no">

<body style="overflow-y:hidden">

如何做到让一个网页自动关闭.

<html>

<head>

<OBJECT id=closes type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">

<param name="Command" value="Close">

</object>

</head>

<body >

这个窗口会在10秒过后自动关闭,而且不会出现提示. </body>

如何在不刷新页面的情况下刷新css?

<style>

button{ color:#000000;}

</style>

<button nclick=document.styleSheets[0].rules[0].style.color=‘‘‘‘red‘‘‘‘>点击按钮直接修改style标签里button选择符使按钮改为  红色</button>

请问如何让网页自动刷新?

在head部记入<META. HTTP-EQUIV="Refresh" c>其中20为20秒后自动刷新,你可以更改为任意值。

如何让页面自动刷新?

方法一,用refresh

HTML 代码片段如下:

<head>

<meta. http-equiv="refresh" c>

</head>

5表示刷新时间

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

方法二,使用setTimeout控制

<img src=/logo.gif>

<script>

function rl(){

document.location.reload()

}

setTimeout(rl,2000)

</SCRIPT>

如何让超链接没有下划线

在源代码中的<HEAD>…</HEAD>之间输入如下代码:

<style. type="text/css"> <!--

a { text-decoration: none}

--> </style>

请问如何去掉IE的上下滚动条?

<body style=‘‘‘‘overflow:scroll;overflow-y:hidden‘‘‘‘>

</body>

怎样才能把RealPlayer文件在网页做一个试听连接?

<embed height=25 src=51js.rm type=audio/x-pn-realaudio-plugin width=50 autostart="false" c>

如何用html实现浏览器上后退按钮的功能?

<a href="java script.:history.go(-1)">点击后退</a>

或者

<script> history.back() </SCRIPT>

4

html代码大全:你不一定知道的技巧

16. ncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键

  <table borderncontextmenu=return(false)><td>no</table> 可用于Table

17. <body nselectstart="return false"> 取消选取、防止复制

18.onpaste="return false" 不准粘贴

19.oncopy="return false;" ncut="return false;" 防止复制

20. <link rel="Shortcut Icon"href="favicon.ico"> IE地址栏前换成自己的图标

21. <link rel="Bookmark"href="favicon.ico"> 可以在收藏夹中显示出你的图标

22. <inputstyle="ime-mode:disabled"> 关闭输入法

23. 永远都会带着框架

<script. language="JavaScript"><!--

if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页

// --></script>

24. 防止被人frame.

<SCRIPT. LANGUAGE=JAVASCRIPT><!--

if (top.location != self.location)top.location=self.location;

// --></SCRIPT>

25. 网页将不能被另存为

<noscript><iframe.src=*.html></iframe></noscript>

26. 查看网页源代码

<input type=button value=查看网页源代码

onclick="window.location = "view-source:"+"http://www.pconline.com.cn"">

27.删除时确认

<a href="javascript:if(confirm("确实要删除吗?"))location="boos.asp? &areyou=删除&page=1"">删除</a>

28.屏蔽功能键Shift,Alt,Ctrl

<script>

function look(){

if(event.shiftKey)

alert("禁止按Shift键!");//可以换成ALT CTRL

}

document.onkeydown=look;

</script>

29. 网页不会被缓存

<META. HTTP-EQUIV="pragma" CONTENT="no-cache">

<META. HTTP-EQUIV="Cache-Control"CONTENT="no-cache, must-revalidate">

<META. HTTP-EQUIV="expires"CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">

或者<META. HTTP-EQUIV="expires"CONTENT="0">

30.怎样让表单没有凹凸感?

<input type=text style="border:1 solid #000000">

或 <input type=text style="border-left:none;border-right:none; border -top:none; border-bottom: 1 solid#000000"></textarea>

31.不要滚动条?

让竖条没有:

<body style="overflow:scroll;overflow-y:hidden">

</body>

让横条没有:

<body style="overflow:scroll;overflow-x:hidden">

</body>

两个都去掉?更简单了

<body scroll="no">

</body>

32.怎样去掉图片链接点击后,图片周围的虚线?

<a href="#"nFocus="this.blur()"><img src="logo.jpg"border=0></a>

33.电子邮件处理提交表单

<form. name="form1"method="post" action="mailt****@***.com"enctype="text/plain">

<input type=submit>

</form>

34.在打开的子窗口刷新父窗口的代码里如何写?

window.opener.location.reload()

35.如何设定打开页面的大小

<body nload="top.resizeTo(300,200);">

打开页面的位置<bodynload="top.moveBy(300,200);">

36.在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动

<STYLE>

body

{background-image:url(logo.gif); background-repeat:no-repeat;

background-position:center;background-attachment: fixed}

</STYLE>

37. 检查一段字符串是否全由数字组成

<script. language="Javascript"><!--

function checkNum(str){return str.match(//D/)==null}

alert(checkNum("1232142141"))

alert(checkNum("123214214a1"))

// --></script>

38. 获得一个窗口的大小

document.body.clientWidth; document.body.clientHeight

39. 怎么判断是否是字符

if (/[^/x00-/xff]/g.test(s)) alert("含有汉字");

else alert("全是字符");

40.TEXTAREA自适应文字行数的多少

<textarea rows=1 name=s1 cols=27npropertychange="this.style.posHeight=this.scrollHeight">

</textarea>

41. 日期减去天数等于第二个日期

<script. language=Javascript>

function cc(dd,dadd)

{

//可以加上错误处理

var a = new Date(dd)

a = a.valueOf()

a = a - dadd * 24 * 60 * 60 * 1000

a = new Date(a)

alert(a.getFullYear() + "年" + (a.getMonth() +1) + "月" + a.getDate() + "日")

} cc("12/23/2002",2)

</script>

42. 选择了哪一个Radio

<HTML><script. language="vbscript">

function checkme()

for each ob in radio1

if ob.checked then window.alert ob.value

next

end function

</script><BODY>

<INPUT name="radio1" type="radio"value="style" checked>Style.

<INPUT name="radio1" type="radio"value="barcode">Barcode

<INPUT type="button" value="check"nclick="checkme()">

</BODY></HTML>

43.脚本永不出错

<SCRIPT. LANGUAGE="JavaScript">

<!-- Hide function killErrors(){return true;} window.onerror = killErrors;// -->

</SCRIPT>

44.ENTER键可以让光标移到下一个输入框

<input nkeydown="if(event.keyCode==13)event.keyCode=9">

文末再提两点建议吧:

  1. 刚学前端JavaScript的时候,一定不要追求速成,编程不比其他传统行业,可以快速的上手,他需要一定的代码量积累起来,不然你追求速成很可能会车毁人亡。

  2. 这个文章到这里就说完了,想要前端学习资料的进我的群自助领取,已经上传到群文件里了:574462090,欢迎初学和进阶中的小伙伴。

如果想看到更加系统的文章和学习方法经验可以关注我的微信公众号:‘前端根据地’关注后回复‘给我资料’可以领取一套完整的学习视频