js内置对象,vue指令

js内置对象

string字符串

charAt(n):返回该字符串位于第n位的单个字符.
indexOf(char):返回指定char首次出现的位置.
lastIndexOf(char) :跟 indexOf() 相似,不过是从后边开始找.
substring(start,end) :返回原字符串的子字符串,该字符串是原字符串从start位
置到end位置的前一位置的一段.
substr(start,length) :返回原字符串的子字符串,该字符串是原字符串从start位
置开始,长度为length的一段.
split(分隔符字符) :返回一个数组,该数组是从字符串对象中分离开来的,<分隔
符字符>决定了分离的地方,它本身不会包含在所返回的数组中。
例如:'1&2&345&678'.split('&')返回数组:1,2,345,678。

Array数组

数组的定义方法:
var <数组名> = new Array();
这样就定义了一个空数组。以后要添加数组元素,就用:
<数组名>[下标] = 值;
如果想在定义数组的时候直接初始化数据,请用:
var <数组名> = new Array(<元素1>, <元素2>, <元素3>...);
还可以
var <数组名> = [<元素1>, <元素2>, <元素3>...];

join(<分隔符>) :返回一个字符串,该字符串把数组中的各个元素串起来,用<分隔
符>置于元素与元素之间。
reverse() 使数组中的元素顺序反过来。如果对数组[1, 2, 3]使用这个方法,它将使数
组变成:[3, 2, 1]。
sort() :使数组中的元素按照一定的顺序排列。如果不指定<方法函数>,则按字母顺
序排列。
对数字排序需要调用排序函数。
function sortNumber(a,b){
return a - b;
}

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			//声明数组
			/* var a = new Array();
			    a[0] = 1;
				a[1] = "ab";
				a[2] = true;
				a[4] = 3; */
				
		   /* var a = new Array(1,2,true,"abc");		 */
		   
		  /*  var a  = [1,2,3,true,"abc"];
			    a[5] = 9;
				console.log(a); */
				
	   			/* var a  = [1,2,3,true,"abc"];
				for (var i = 0; i < a.length; i++) {
					  console.log(a[i]);
				} */
				
				//var a  = [1,2,3,true,"abc"];
				//var s =  a.join(":"); //把数组转换为字符串,指定一个连接符号
				  // a.reverse(); 数组逆序
				//console.log(a);
				
				//var a  = ['b','c','a','d'];
				    //a.sort();
					//console.log(a);
					
				 var a  = [2,3,11,4,1];
				 a.sort(numbersort); //把numbersort排序函数,当做参数传入到sort函数中
				 console.log(a);
				 
				 //自定义一个排序函数
				 function numbersort(a,b){
					  return a-b;
				 }
				 
				 
				 var date = new Date();
				 console.log(date.getFullYear());
				 console.log(date.getMonth()+1);
				 console.log(date.getDate());
				 console.log(date.getDay());
				 console.log(Math.abs(-1));
		</script>
	</head>
	<body>
	</body>
</html>

Date

n e w D a t e ( )
返 回 当 日 的 日 期 和 时 间
g e t F u l l Ye a r ( )
返 回 四 位 数 字 年 份
g e t D a t e ( )
返 回 一 个 月 中 的 某 一 天 ( 1 ~ 3 1 )
g e t M o n t h ( )
返 回 月 份 ( 0 ~ 1 1 )
g e t D a y ( )
返 回 一 周 中 的 某 一 天 ( 0 ~ 6 )
g e t H o u r s ( )
返 回 D a t e 对 象 的 小 时 ( 0 ~ 2 3 )
g e t M i n u t e s ( )
返 回 D a t e 对 象 的 分 钟 ( 0 ~ 5 9 )
g e t S e c o n d s ( )
返 回 D a t e 对 象 的 秒 数 ( 0 ~ 5 9 ) )

Math

Math.abs(x) 绝对值计算;
Math.pow(x,y) 数的幂;x的y次幂
Math.sqrt(x) 计算平方根;
Math.ceil(x) 对一个数进行上舍入
Math.floor(x)
对一个数进行下舍入。
Math.round(x)
把一个数四舍五入为最接近的整数
Math.random()
返回 0 ~ 1 之间的随机数
Math.max(x,y)
返回 x 和 y 中的最大值
Math.min(x,y)
返回 x 和 y 中的最小值

计时

通 过 使 用 J a v a S c r i p t , 我 们 有 能 力 做 到 在 一 个 设 定 的 时 间 间 隔 之 后 来 执
行 代 码 , 而 不 是 在 函 数 被 调 用 后 立 即 执 行 。 我 们 称 之 为 计 时 事 件 。
方 法 :
s e t Ti m e o u t ( “ 函 数 ” , ” 时 间 ” ) 未 来 的 某 时 执 行 代 码
c l e a r Ti m e o u t ( ) 取 消 s e t Ti m e o u t ( )
s e t I n t e r v a l ( “ 函 数 ” , ” 时 间 ” ) 每 隔 指 定 时 间 重 复 调 用
c l e a r I n t e r v a l ( ) 取 消 s e t I n t e r v a l ( )

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script>
			function hello(){
				alert("hello");
			}	
		//var t=	setTimeout("hello()",3000);//设置在指定时间后调用函数,只调用一次,setTimeout会返回一个变量,计时器编号
		var t;
		function start(){
			t = setInterval("hello()",3000);
		}
		function stop(){
			//clearTimeout(t);//取消定时器,传入计时器编号就可以停止计时器
			clearInterval(t);
		}
				
			</script>
	</head>
	<body>
		<input type="button" value="开始" onclick="start()" />
		<input type="button"  value="停止" onclick="stop()"/>
		
		
	</body>
</html>

vue概述

是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

vue.js的优点

1.体积小 压缩后 33K
2.更高的运行效率
用 JQuery 或者原生的 JavaScript DOM 操作函数对 DOM 进行频繁操作的
时候,浏览器要不停的渲染新的 DOM 树,导致页面看起来非常卡顿。
基于虚拟 dom,一种可以预先通过 JavaScript 进行各种计算,把最终的
DOM 操作计算出来并优化的技术,最后在计算完毕才真正将 DOM 操作提交。
3.双向数据绑定,简化 Dom 操作
通过 MVVM 思想实现数据的双向绑定,让开发者不用再操作 dom 对象,
把更多的精力投入到业务逻辑上.
MVVM 是 Model-View-ViewModel 的简写。MVVM 就是将其中的 View 的
状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。

vue的安装

方式1

下载vue.js并且导入js文件,他就类似以前的数据库与java连接,数据库官方的连接jar包,下载后导入即可。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<!-- 导入vue.js -->
		<script src="v2.6.10/vue.js"></script>
	</head>
	<body>
		
		<div id="app-6">
		  <p>{{ message }},{{name}}</p> 
		  <!-- {{}}插值表达式,可以获取data中的数据 -->
		  <input v-model="message">
		  <input v-model="name">
		</div>
		
		<script>
			
		var app6 = new Vue({
		  el: '#app-6',//绑定挂载点,可以使用其他选择器,建议使用id选择器
		  data: {
		    message: 'Hello Vue!',
			name:"jack"
		  }
		})	
			
		</script>
	</body>
</html>

方式2

安装教程给出了更多安装 Vue 的方式。请注意我们不推荐新手直接使用 vue-cli,尤其是在你还不熟悉基于 Node.js 的构建工具时。

Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM
的系统:
代码解析:
{{ 变量 }} ,插值表达式获取 data 数据
new Vue();创建 Vue 对象(VM 对象)
el:数据挂载的 dom 对象
Vue 会管理 el 选项命中的元素及其内部的后代元素
可以使用其他的选择器,但是建议使用 ID 选择器
可以使用其他的闭合标签,不能使用 HTML 和 BODY
data:{ message:’hello world’} model 数据
Vue 中用到的数据定义在 data 中
data 中可以写复杂类型的数据,如对象,数组

vue指令

指令带有前缀 v- 开头,以表示它们是 Vue 提供的特殊属性。

v-text与v-html

v-text作用是设置标签的文本内容
默认写法会替换全部内容,使用差值表达式可以替换指定内容
内部支持写表达式

v-html作用是设置元素的 innerHTML
内容中有 html 结构会被解析为标签
内部支持写表达式

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<!-- 导入vue.js -->
		<script src="js/v2.6.10/vue.js"></script>
	</head>
	<body>
		<!-- 
		{{message}}插入一个值,不会影响标签中的·其他内容,
		 v-text="message"与v-html="message"会覆盖标签内的内容
		 
		 v-text="message"与{{message}}不可以读取标签
		 v-html="message"可以读取标签并且解析出来
		 -->
		
		
		<div id="app">
			<p>{{message}}</p>
			<p v-text="message"></p>
			<p v-html="message"></p>
		</div>
		
		
		<script>
			var app=new Vue(
			{
				el:'#app',
				data:{
					message:"<b>你好</b>!"
				}
			}
			)
			
		</script>
		
		
	</body>
</html>

v-on 与v-model

v-on作用是为元素绑定事件
事件名不需要写 on 指令可以简写为@
绑定的方法定义在 methods 属性中,可以传入自定义参数
<input type="button" value="按钮" v-on:click="test(1,2)" />
<input type="button" value="按钮" @click="test" />

v-model作用是便捷的设置和获取表单元素的值
绑定的数据会和表单元素值相关联
绑定的数据<---->表单元素的值 双向数据绑定
<input type="text" v-model="message"/>
<p>{{message}}</p>
data:{
message:""
}

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/v2.6.10/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<!-- 
			 v-on:click点击事件
			 @click点击事件
			 v-model只可以用在表单标签把表单元素的值绑定到vue对象data中去,数据同步
			 -->
			<input type="button" value="按钮1" v-on:click="test1()"/>
			<input type="button" value="按钮2" @click="test2()"/>
			<input type="text" v-model="message"/>
			<input type="text" v-model="name"/>
			<p>{{message}}</p>
			<p>{{name}}</p>
		</div>
		
		
		
		<script>
			var t=new Vue({
				el:'#app',
				data:{
					message:"!",
					name:"12233"
				},
				methods:{
					test1(){
						alert(this.message);
					},
					test2(){
						alert(this.name);
					}
				}
			})
			
			
		</script>
	</body>
</html>

v-show

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title><script src="js/v2.6.10/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<!-- v-show只是通过改变display属性none使img隐藏 -->
			<img v-show="isshow" src="img/1.png" alt="" />
			<img v-show="isshow" src="img/3.png" alt="" />
			<input type="button" v-on:click="test()" value="隐藏" />
		</div>
		<script>
		var t = new Vue({
			el:'#app',
			data:{
				isshow:true
			},
			methods:{
				test(){
					this.isshow=false;
				}
			}
		})	
			
		</script>
		
	</body>
</html>

v-if

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title><script src="js/v2.6.10/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<!-- v-if直接让标签消失了,效率低 -->
			<!-- v-if可以和v-else连用,但必须连着不可以有其他的标签 -->
			<img v-if="isshow" src="img/1.png" alt="" />
			<img v-if="isshow" src="img/3.png" alt="" />
			<img v-else src="img/2.png" alt="" />
			<input type="button" v-on:click="test()" value="隐藏" />
		</div>
		<script>
		var t = new Vue({
			el:'#app',
			data:{
				isshow:true
			},
			methods:{
				test(){
					this.isshow=false;
				}
			}
		})	
			
		</script>
		
	</body>
</html>

v-bind

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/v2.6.10/vue.js"></script>
		<style>
			.active{
				color:red;
				
			}
		</style>
	</head>
	<body>
		<!-- 标签的属性值可以动态修改
		 v-bind:属性名="变量名" 一旦为属性添加了v-bind 值就是一个在data中定义的变量
		 还可以简写为:属性名
		 -->
		 <div id="app">
			 <div v-bind:class="{active:isactive}">wwww</div>
			 <img v-bind:src="imgarr[index]" :title="titlearr[index]" />
			 <input type="button"  value="切换" @click="test()"/>
			 
		 </div>
		 
		 <script>
			var t =new Vue({
				el:'#app',
				data:{
					imgarr:["img/1.png","img/2.png","img/3.png"],
					index:0,
					titlearr:["1","2","3"],
					isactive:true
				},
				methods:{
					test(){
						this.index++;
						this.isactive=!this.isactive;
					}
				}
			}) 
			 
		 </script>
		 
		
		
		
	</body>
</html>

v-for

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/v2.6.10/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<ol>
				<!-- v-for对标签内容进行循环 -->
				<li v-for="use in users">
					姓名:{{use.name}}
					年龄:{{use.age}}
					性别:{{use.gender}}
					
				</li>
			</ol>
			
		</div>
		
		
		<script>
		var t = new Vue({
			el:'#app',
			data:{
				users:[{name:"jak",age:10,gender:"man"},
				{name:"jak",age:10,gender:"man"},
				{name:"jak",age:10,gender:"man"}]
			}
		})	
			
		</script>
		
		
	</body>
</html>

  • 9
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值