JavaScript 二

JavaScript对象及相关函数

  • String对象
  • Date对象
  • Math对象

浏览器对象和元素(DOM模型)

其它常用函数

  • parseInt()函数
  • parseFloat函数

JavaScript对象

  • 一、字符串对象——String对象

利用String对象提供的函数来处理字符串:

  1. charAt(idx):返回指定位置处的字符
  2. indexOf(Chr):返回指定子字符串的位置,从左到右。找不到返回-1
  3. lastIndexOf(chr):返回指定子字符串的位置,从右到左。找不到返回-1
  4. substring(m,n):返回给定字符串中从m位置开始,到n位置结束的子串,如果参数n省略,则意味着取到字符串末尾。
  5. toLowerCase():将字符串中的字符全部转化成小写。
  6. toUpperCase():将字符串中的字符全部转化成大写。

字符串对象

  • 属性:length

跟java语言不太一样,java语言要获得一个字符串的长度要用length()方法,在js里要想获取一个字符串的长度用length属性

  • 方法:

1、字体控制:big() 、link() 、bold() 等

big() 调一次字体增大一号,link()加链接的意思(类似超链接),bold() 加粗

2、字符串:toLowCase()、toUpperCase()、indexOf(char,fromIndex)、substring(start,end)

eval()函数

  • eval()函数可以把一个字符串当作一个JavaScript表达式一样去执行它
  1. 不使用eval:alert ("3"+"2"); --〉32
  2. 使用eval的上下文环境:alert (eval("3") + eval("2")); --〉5
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD>

 <BODY>
  <script>
     var a = "10";
	 //var a = 10;

     alert("3"+"2"); // 32
	 alert(eval("3") + eval("2")); //5
	 alert(eval("a") + eval(2)); //102   //eval("a") ""是eval()里面的一个运算符,写完以后它会把a当做一个表达式来用,去取出a的值,取出10后,变为eval("10"),则eval("10")+eval(2)结果为102
	 alert(a + 2); //102
	 alert(eval(a) + eval(2)); //12      //eval(a)中a的外面没有出现"",把a当做一个表达式来用,取出的值为10,eval(10) + eval(2)结果为12
	 alert(eval("\"a\"") + eval(2)); //a2  //eval("\"a\"")最外层的""为eval的运算符,则eval("")里面是字符串"a",与eval("a")不同
	 alert("a" + 2); //a2
	 alert(eval("2+3")); //5
	 alert(2 + "a"); //2a
	 alert(2 + 3 + "a"); //5a
  </script>

<script>

   var fun1 = function (){
      alert("function()函数测试-第1种写法。。。");
   
   }
  function fun2(){
      alert("function()函数测试-第2种写法。。。");
   
   }
</script>
<input type="button" value="eval函数测试-第1种写法" onclick="eval(fun1());"/>&nbsp;&nbsp;
<input type="button" value="eval函数测试-第2种写法" onclick='eval("fun2()");'/>
 </BODY>
</HTML>

具有转换功能

  • 二、时间对象——Date对象

参数详解:  

  • month:用英文表示的月份名称。  
  • mth:用证书表示的月份,从0-11。  
  • dd:表示一个月中的第几天,从1-31。  
  • yyyy:四位数表示的年份。  
  • hh:小时数,从0-23。  
  • mm:分钟数。                  
  • ss:秒数,从0-59。  
  • ms:毫秒数。

日期及时间函数

  • getYear(): 返回年数;                setYear(): 设置年数
  • getFullYear():返回YYYY格式
  • getMonth(): 返回月数;              setMonth():设置月数
  • getDate():  返回日数;               setDate():设置日数
  • getDay(): 返回星期几;              setDay():设置星期数
  • getHours():返回小时数;            setHours():设置小时数
  • getMinutes():返回分钟数;         setMintes():设置分钟数
  • getSeconds():返回秒数;           setSeconds():设置秒数
  • getTime() : 返回毫秒数;            setTime() :设置毫秒数

objDate.getMonth():返回用整数表示的月份,用于表示1-12月,但从0开始表示,0:表示1月份,以此类推,11:表示12月。

实用方法:setTimeout、setInterval、clearTimeout

  •  setTimeout(代码或函数名,时间):超过指定的时间只执行一次代码或函数

例:var a = window.setTimeout("alert('Hello, world')", 2000);

说明:过2秒钟只执行一次alert('Hello, world')代码

  • setInterval (代码或函数名,时间)

例:var b = window.setInterval("alert('Hello, world')", 2000);

说明:每隔2秒钟执行一次alert('Hello, world')代码

注:以上两个方法中的时间单位均为:毫秒。

setTimeout、setInterval一执行会创建一个自动执行的时间对象,并把对象返回,可用变量来接收(a,b)

  • clearTimeout

例:clearTimeout(b);

说明:clearTimeout方法是撤消setInterval动作的,其中,变量b代表了window.setInterval("alert('Hello, world')", 2000)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD>
<script language=javascript>

    //过2秒钟只执行一次alert('Hello, world')代码
	//var a = window.setTimeout("alert('Hello, world')", 2000);

    //每2秒够执行一次alert('Hello, world')代码
	var a = window.setInterval("alert('Hello, world')", 2000);
	 
</script>

 <BODY>
 <!--
 clearTimeout方法是撤消setInterval动作的,其中变量a代表了window.setInterval("alert('Hello, world')", 2000)
 -->
<input type=button value="停止" onclick="clearTimeout(a);">
 </BODY>
</HTML>

实用示例:使用JavaScript实现日期时间的动态显示

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD>
 <BODY>
<table width="562" height="52" border="1" align="center">
<tr>
<td width="171" height="46" align="right">当前时间:</td>
<td id="timeValue" width="375" style="padding-left:10px"></td>
</tr>
</table>
 </BODY>
<script language=javascript>
function view(tdId){//js方法尽量写成活的
    var date = new Date();
    var year = date.getFullYear();
    var month = date.getMonth()+1;
    var day = date.getDate();
    var hour = date.getHours();
    var minute = date.getMinutes();
    var second = date.getSeconds();
    if(month <10){
        month = "0"+month;
    }
    if(day <10){
        day = "0"+day ;
    }
    if(hour  <10){
        hour  = "0"+hour  ;
    }
    if(minute <10){
        minute= "0"+minute ;
    }
    if(second  <10){
        second  = "0"+second  ;
    }
    var newTime = year +"-"+month+"-"+day+" "+hour+":"+minute+":"+second;
    var tobj = document.getElementById(tdId);
    tobj.innerHTML ="<b>" +newTime+"</b>"; //innerHTML表示td中间的内容
}
window.setInterval("view('timeValue')",1000);
</script>
</HTML>

递归:自己调用自己

切记:要操作的html元素,在操作之前一定要先加载到浏览器内,以便将来能找到这个元素

  • 三、数学对象——Math对象

Math对象常用方法:

  • abs():绝对值  
  • sin() 、 cos():正弦余弦值  
  • asin() 、 acos():反正弦反余弦  
  • tan() 、atan():正切反正切  
  • round():四舍五入  
  • sqrt():平方根  
  • pow(x,y):x的y次方

JavaScript常用函数

这些函数不从属于任何的对象

在JavaScript的任何地方都可以直接使用这些函数:

  • parseInt()函数  
  • parseFloat函数  
  • setTimeout()、setInterval () 、clearTimeout ()函数
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD>

 <BODY>
  <script>
     var i = "1234";
	 var j = "45aa90";

	 var k = "35.67";
	 var z = "25.5aabb67.8";

	 var str = "abc";

	 document.write("1234转换成整数后为:" + parseInt(i) + "<br>");//1234转换成整数后为:1234
	 document.write("45aa90转换成整数后为:" + parseInt(j) + "<br>");//45aa90转换成整数后为:45

	 document.write("35.67转换成浮点数后为:" + parseFloat(k) + "<br>");//35.67转换成浮点数后为:35.67
	 document.write("25.5aabb67.8转换成浮点数后为:" + parseFloat(z) + "<br>");//25.5aabb67.8转换成浮点数后为:25.5
	 document.write("abc转换成数字后为:" + parseFloat(str) + "<br>");//abc转换成数字后为:NaN
  </script>
 </BODY>
</HTML>

parseInt和parseFloat函数

  1. parseInt函数功能:试图从一个字符串中提取出一个整数。
  2. parseInt函数也可以附加一个整数n,可以返回n进制的一个整数。可以利用这个函数从字符串中提取二进制、八进制和十六进制的整数。
  3. 如果在字符串中除了数字、符号、小数点和指数符号以外的字符,parseInt就停止转换,返回已有的结果。
  4. 如果第一个字符不是数字就不可以转换,parseInt就返回”NaN”值,指示字符串中不存在数字。
  5. parseFloat函数和parseInt函数相似,只不过它转换的是浮点数。
  6. isNaN():判断变量是否是数值型,如果不是,则返回true;如果是则返回false
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD>

<script>
    function check(num,oEvent){
	  var f = document.getElementById("form1");
	  if(oEvent.keyCode == 13){
		   if(isNaN(num)){//如果输入的不是数字,则该条件成立
			   alert("NaN");
		   }else{

			   alert(num);
			   /*
			     * 判断为输入的数字后,提交表单,此时不会再触发表单的onsubmit事件,因为这次提交动作是调用表单对象自己的submit()方法实现的,而不是使用“提交按钮”或“图片   按钮”进行提交的,即:只能使用“提交按钮”或“图片按钮”进行提交时才会触发onsubmit事件。
			     * 因为onsubmit事件中写的代码是:return false表示不提交表单,如果这里不通过调用表单对象自己的submit()方法,则表单不会进行提交
			   */
			   f.submit();
		   }
	  }

	}
</script>

 <BODY>
 <form id="form1" action="www.baidu.com" onsubmit="return false;"><!--按回车键相当于单击submit按钮一样会提交表单-->
    <input type="text" name="page" value="" onKeyPress="check(this.value,event)"/>
	</form>
 </BODY>
</HTML>

浏览器对象的层次结构

浏览器就是window,由以下四类组成

  1. 显示网页的区域就是document
  2. 历史列表history
  3. 地址栏location,给location赋值则会跳到指定的网页上去
  4. 导航栏Navigator

其中document还包含有链接links,锚点anchors,图片images、表单forms等,且这些均为数组对象,不常用

<html>
<head></head>
<body>
<script>
function gotoUrl(){
	var aObj = document.getElementById("local");
	aObj.click();//用js实现点击超链接
}

</script>
<a id="local" href="www.baidu.com">XXX</a><input type="button" value="Go" onclick="gotoUrl();"/>
</body>
</html>

窗口中的对象和元素(BOM)

  • window
  1. 打开新窗口(window.open());这个窗口不是模式窗口,alert是模式窗口
  2. 关闭窗口(window.close())
  • location :获取或设置现有文档的URL
  • history :先前访问过的URL的历史列表;常用方法:back(),go(number)
  • document :当前的文档对象
  1. document.write():向客户端浏览器输出内容
  2. document.formName:可以用这个方法得到表单名称

浏览器对象(BOM)——document

document:处理页面文档(即当前的文档对象)。例如,向页面写入信息、创建新的节点、获取表单信息等功能,都可以使用document对象来完成,它表示页面文档本身

document对象的常见属性

  • anchors:返回文档中所有的书签标记组成的数组。
  • cookie:返回或设置cookie。
  • domain:返回或者设置文档的默认域名。
  • embeds:返回文档中所有嵌入对象组成的数组。
  • forms:返回文档中所有表单组成的数组。
  • images:返回文档中所有图像组成的数组。
  • lastModified:返回文档最后一次的修改日期。
  • links:返回文档中所有链接的集合。

这些属性用的很少,不怎么应用

DOM模型

所谓DOM是指文档对象模型,document,树状模型

outerHTML、innerHTML、innerTEXT属性

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<script>
   function demo(){

	 var tdObj = document.getElementById("content");
	 //tdObj.innerHTML = "使用td的innerHTML属性将td单元格中的内容动态替换了";
         var username = document.getElementById("username").value;
	 var reg = /^\w{3,}$/;
	 if(!reg.test(username)){
	     tdObj.innerHTML = "<font color='red'><b>用户名至少是3位!</b></font>"; 
	 }else{
	 
	    tdObj.innerHTML = "&nbsp;";
	 }
   }

</script>
<body>
<table width="658" height="95" border="1" align="center">
  <tr>
    <td colspan="3" align="center">innerHTML属性示例</td>
  </tr>
  <tr>
    <td width="198" align="center" valign="middle">用户名:</td>
    <td width="243" style="padding-left:10px;">
	   <input type="text" id="username" name="username" />
	</td>
    <td id="content" width="244" style="padding-left:10px;">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="3" align="center"><input type="button" value="innerHTML属性测试" onclick="demo();"/></td>
  </tr>
</table>
  
</body>
</html>

浏览器对象——window

window对象是浏览器对象中其他大部分对象的共同的祖先,所以一般在JavaScript程序中可以省略window对象

常用的window对象的方法

  • open(URL,windowName,parameterList):创建一个新的浏览器窗口,载入一个指定的URL地址

open()方法参数说明:

1、第一个参数:URL;(你显示资源的地址)

2、第二个参数:新窗口的名字;(在什么位置显示)

window.open(“http://www.baidu.com”,”topFrame”);    

这行代码的行为相当于用户点击一个链接,该链接的href为:http://www.baidu.com,target为“topFrame”。

专用的框架名:_self、_parent、_top、_blank也是有效的,即第二个参数也可以是专用的框架名。

3、第三个参数:特性字符串(新打开窗口的外观)

设置

取值

说明

left

Number

说明新创建的窗口的左坐标,不能为负数

top

Number

说明新创建的窗口的上坐标,不能为负数

height

Number

说明新创建的窗口的高度,该数字不能小于100

width

Number

说明新创建的窗口的宽度,该数字不能小于100

resizable

yes,no

判断新窗口是否能通过拖动边线调整大小,默认值为no

scrollable

yes,no

判断当新窗口显示不下内容时是否允许滚动,默认值为no

toolbar

yes,no

判断新窗口是否显示工具栏,默认值为no

status

yes,no

判断新窗口是否显示状态栏,默认值为no

location

yes,no

判断新窗口是否显示(Web)地址栏,默认值是no

特性字符串是用逗号分隔的设置列表。特性字符串是用逗号分隔的,因此在逗号或等号前后不能有空格。

window.open(”http://www.baidu.com”,”_blank”,”height=150,width=300,top=10,left=10,resizable=yes”);

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD>

 <BODY>
  <script>
	   function openNewWidnow(){
	   
	      window.open("06_1.html","","height=150,width=300,top=400,left=600,resizable=yes");//第二个参数默认值为_blank,新打开一个窗口
		  //window.open("06_1.html","_blank","height=150,width=300,top=10,left=10,resizable=no");
	   }
  </script>

  <input type="button" value="打开窗口" onclick="openNewWidnow();"/>
 </BODY>
</HTML>
  • close():关闭一个浏览器窗口
  • alert():弹出一个消息框

JavaScript中的对话框

  • 警告框(alert):出现一个提示信息
  • 询问框(prompt):返回输入的值 ;prompt(“提示信息”,”默认值”)
var info = window.prompt(“提示信息”,”默认值”);
  • 确认框(confirm):根据不同的选择,返回true/false
<script>
        function del(){
		var cv = confirm("您确认删除该记录吗?");
		if(cv == true){
		  alert("您已经删除了该条记录!");
		  
		}else{
		  

		}
	}
</script>

处理地址栏信息—location

location对象是window对象的一个子对象,通过它可以获取或设置浏览器的当前地址。

location对象最常见的功能就是改变浏览器当前浏览的页面,

例如:        

window.location=“http://www.baidu.com”;

location对象的属性

  • protocol:表示浏览器和服务器间通信所使用的协议,如“http:”。
  • hostname:表示服务器的主机地址,通常是一个域名或者ip地址,如www.baidu.com 。
  • port:表示浏览器和服务器间通信所使用的服务器端口(默认为80,也是Web服务器常用的端口)。
  • host:表示主机名加端口号,等价于:hostname+port。
  • pathname:表示文档的路径信息,例如“/ajax/3.2.html”。
  • hash:表示书签名,即从#号开始到书签结束的部分,例如“#chapter1”。
  • search:表示查询字符串,即从问号(?)开始到查询参数结束的部分,例如“?sort=book&id=221”。
  • href:表示整个URL地址。

location对象提供了两个方法来对页面载入进行控制,分别是reload方法和replace方法。

  • reload(source)方法    

reload方法可以重新载入页面(纯粹的刷新),它接收一个布尔型的参数source,表示页面载入的来源。当source为默认值false时,表示从缓存中载入页面;当为true时表示强制从服务器重新载入页面,通过这个方法很容易实现页面刷新的功能。

  • replace(URL)方法      

replace方法用来控制新记录插入浏览器访问历史列表中的方式(替换)。

语法为:location.replace(URL)      

这个调用实际上和改变location属性的效果相同,表示将用户导航至URL所指向的页面。然而,当前页面却不会被记录到浏览器历史列表中,而是由新页面代替。

建议跳转还是使用window.location

浏览器对象——history

history对象同样是window对象的一个子对象,它对应于浏览器的历史记录功能。

history也提供了3个方法:back()、forward()、go()。这些方法用来控制浏览器的前进和后退功能。

【注意】          

history.go()方法,当参数为正时(且只能为1),相当于前进功能;当参数为负时(且只能为-1),相当于后退功能;当参数为0时,表示刷新当前页面。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第13章 HTML/CSS样式 503 13.1 页面效果 504 实例317 统一站内网页风格 504 实例318 设置超级链接文字的样式 508 实例319 网页换肤 509 实例320 滚动文字 512 实例321 制作渐变背景 513 13.2 表格样式 514 实例322 只有外边框的表格 515 实例323 彩色外边框的表格 516 实例324 控制表格指定外边框不显示 518 实例325 背景颜色渐变的表格 520 实例326 表格隔行变色 521 13.3 鼠标及滚动条样式 522 实例327 显示自定义鼠标形状 522 实例328 动画光标 524 实例329 制作彩色滚动条 525 13.4 文字及列表样式 527 实例330 应用删除线样式标记商品特价 527 实例331 在文字上方标注说明标记 528 实例332 指定图标的列表项 529 13.5 文字滤镜特效 530 实例333 文字的发光效果 531 实例334 文字的阴影效果 532 实例335 文字的渐变阴影效果 533 实例336 文字的图案填充效果 534 实例337 文字的探照灯效果 535 实例338 文字的闪烁效果 537 实例339 文字的空心效果 538 实例340 文字的浮雕效果 539 实例341 文字的阳文效果 540 实例342 文字的雪雕效果 541 实例343 火焰字 542 实例344 文字扭曲动画 544 13.6 图片滤镜特效 545 实例345 图片的半透明效果 545 实例346 图片的模糊效果 546 实例347 图片的水波纹特效 547 实例348 图片的灰度效果 548 实例349 图片的动态说明文字 549 第14章 JavaScript与XML 553 14.1 读取XML文件 554 实例350 使用XML DOM对象读取XML文件 554 实例351 使用XMLHttpRequest对象读取XML文件 557 14.2 显示XML文档 559 实例352 使用CSS显示XML文档 559 实例353 使用XSL显示XML文档 562 实例354 使用IE XML数据岛输出XML文档 564 14.3 操作XML 565 实例355 用JavaScript控制XML文档的分页显示 565 实例356 通过操作XML数据岛实现添加、删除留言信息 567 第15章 JavaScript与ASP结合 573 15.1 弹出窗口/对话框控制 574 实例357 关闭弹出窗口刷新父窗口 574 实例358 打开新窗口显示详细信息 575 实例359 弹出网页模式对话框 577 实例360 日期选择器 580 实例361 弹出提示对话框并重定向网页 584 实例362 打开指定大小的新窗口并居中显示 586 15.2 弹出确认对话框 588 实例363 删除数据前弹出确认对话框 588 实例364 安全退出前弹出确认对话框 590 15.3 其他 591 实例365 远程获取其他网页情报 591 实例366 树状导航菜单 594 实例367 使用XML实现不刷新页面查询数据 596 第16章 JavaScript与JSP结合 601 16.1 窗口与对话框 602 实例368 弹出提示对话框并重定向网页 602 实例369 打开新窗口显示详细信息 604 实例370 打开指定大小的新窗口并居中显示 605 实例371 弹出网页模式对话框 607 实例372 关闭弹出窗口刷新父窗口 609 16.2 无刷新技术 611 实例373 无刷新的用户名检测 611 实例374 无刷新的级联下拉列表 614 实例375 使用XML实现不刷新页面查询数据 616 16.3 调用与控制 619 实例376 将查询结果导出到Word 619 实例377 调用Excel 621 实例378 调用PowerPoint 622 16.4 其他 623 实例379 树状导航菜单 623 第17章 JavaScript与ASP.NET结合 627 17.1 窗口与对话框 628 实例380 使用JavaScript脚本弹出对话框 628 实例381 打开新窗口显示详细信息 629 实例382 关闭弹出窗口刷新父窗口 631 实例383 弹出网页模式对话框 633 实例384 弹出全屏显示网页 635 17.2 其他 637 实例385 自动隐藏式菜单 637 第18章 JavaScript与PHP结合 641 18.1 窗口与对话框 642 实例386 弹出提示对话框并重定向网页 642 实例387 关闭弹出窗口自动刷新父窗口 643 实例388 在弹出的网页模式对话框中选择个性头像 645 实例389 间选择器 647 实例390 弹出提示对话框并重定向网页 649 实例391 删除数据前弹出确认对话框 650 18.2 其他 651 实例392 树状导航菜单 651 第19章 综合应用 657 19.1 计算器 658 实例393 简单计算器 658 实例394 复杂计算器 662 19.2 日历 667 实例395 精美日历 668 实例396 带农历的日历 674 19.3 购物车 681 实例397 添加至购物车 682 实例398 查看购物车 684 实例399 修改商品购买数量 686 实例400 从购物车中移去指定商品 687 实例401 清空购物车 689
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值