js基础练习总结

冒泡排序

//		var arr=[11,25,6,88,9,12,20];
//		for(var i=0;i=arr.length-1;i++){		//一次确定最大值到最小值
//			for(var j=0;j=arr.length-i-1;j++){	//反复实现数组交换
//				if(arr[j]>arr[j+1]){			//比之后交换
//					var ar=arr[j];
//					arr[j]=arr[j+1];
//					arr[j+1]=ar;
//				}
//			}
//		}
//		console.log(arr);


	//Number()/parseInt()区别			Number 运行加快,便捷
	console.log(Number("18"));		//字符串类型的数字
	console.log(parseInt("18")),parseFloat("18e3");	//18的三次方
	//parseInt 将字符串转为整数	进制转换,去掉单位	parseFloat 将一个字符串转为浮点数
	//String / toString 区别
	//String()可以把任意类型转换字符串 null undefined
	//toString()除了null undefined 都可以转换字符串类型
	var num=18;
	console.log(String(num),num.toString());	//一个里面一个外面取值
	//false 的几种值	false	null	undefined	""即空字符串		0		NaN

闭包

function f1() {
  var n = 999;
  function f2() {
  console.log(n); // 999
  }
}

上面代码中,函数f2就在函数f1内部,这时f1内部的所有局部变量,对f2都是可见的。但是反过来就不行,f2内部的局部变量,对f1就是不可见的

function f1() {
  var n = 999;
  function f2() {
    console.log(n);
  }
  return f2;
}

var result = f1();
result(); // 999

上面代码中,函数f1的返回值就是函数f2,由于f2可以读取f1的内部变量,所以就可以在外部获得f1的内部变量了。
闭包的最大用处有两个,一个是可以读取函数内部的变量,另一个就是让这些变量始终保持在内存中,即闭包可以使得它诞生环境一直存在。请看下面的例子,闭包使得内部变量记住上一次调用时的运算结果。

function createIncrementor(start) {
  return function () {
    return start++;
  };
}

var inc = createIncrementor(5);

inc() // 5
inc() // 6
inc() // 7

上面代码中,start是函数createIncrementor的内部变量。通过闭包,start的状态被保留了,每一次调用都是在上一次调用的基础上进行计算。从中可以看到,闭包inc使得函数createIncrementor的内部环境,一直存在。所以,闭包可以看作是函数内部作用域的一个接口。
闭包的另一个用处,是封装对象的私有属性和私有方法。

function Person(name) {
  var _age;
  function setAge(n) {
    _age = n;
  }
  function getAge() {
    return _age;
  }

  return {
    name: name,
    getAge: getAge,
    setAge: setAge
  };
}
var p1 = Person('张三');
p1.setAge(25);
p1.getAge() // 25

上面代码中,函数Person的内部变量_age,通过闭包getAge和setAge,变成了返回对象p1的私有变量。
注意,外层函数每次运行,都会生成一个新的闭包,而这个闭包又会保留外层函数的内部变量,所以内存消耗很大。因此不能滥用闭包,否则会造成网页的性能问题。

练习

		< !--< div>i love you< /div >
		< button onclick="dat()">点击</button>-->
		< div onload="countTime()">  
         < span id="_d">00< /span>  
         < span id="_h">00< /span>  
         < span id="_m">00< /span>  
         < span id="_s">00< /span>  
      < /div>  
	<!--<p>
		用户名:<input onblur="c_code()" type="text" id="code">
	</p>
	<p>
		密  码: <input onblur="c_cc()" type="text" id="pwd">
	</p>
	 <p>
	 	<input onclick="" type="submit" value="登录"/>
	 </p>-->
		
//		function c_code(){
//			var code=document.getElementById("code");
//			var c = code.value;
//			if (c==null ||  !isNaN(c) ){
//				alert("请输入字符串");
//			}
//		}
//		
//		function c_cc(){
//		var code=document.getElementById("pwd");
//		var tel = code.value;
//		if(tel.length==11){
//			for(var i=0;i<tel.length;i++){
//				if (Number(tel[i])==false) {
//					alert("请输入数字");
//					break;
//				}
//			}
//		}
//		else{
//			alert("请输入正确的手机号码");
//		}
//	}	

//		function(arr){
//			for(i=1;i>arr.length;i++){
//				var key=arr[i];
//				var j=arr[i-1];
//				while(arr[j]>key){
//					arr[j+1]=arr[j];
//					j--;
//				}arr[j+1]=key;
//			}return arr;
//		}var arr=[11,13,111,54,17,90,60,119];
//		console.log(arr);
		
//		var obj={};
//		obj.property1="property1";
//		obj.method1=function (){
//			return bbb;
//		}
//		console.log(obj.property1);
//		console.log(obj.method1);

//		function dat(){
//			var aaa=document.getElementsByTagName('div')[0];
//			var str=aaa.innerHTML;
//			console.log(str);
//			var arr = str.split(" ");					//按照空格分割字符串,转成数组
//			for(var i=0;i<arr.length;i++){				//遍历数组
//				var h=arr[i].slice(0,1).toUpperCase();  //截取数组元素的首字母 - 转成大写
//				var j=arr[i].slice(1); 					//截取剩余的字母
//				arr[i]=h+j;								//拼接首字母和剩余字母,替换数组中的元素
//			}
//			var a=arr.join(' ');						//把数组转成字符串				
//			aaa.innerHTML=a;
//		}

时间定义

	setInterval(function countTime() {  
        //获取当前时间  
        var date = new Date();  
        var now = date.getTime();  
        //设置截止时间  
        var str="2018/8/24 12:00:00";
        var endDate = new Date(str); 
        var end = endDate.getTime();  
        //时间差 
        var leftTime = end-now; 
        //定义变量 d,h,m,s保存倒计时的时间  
        var d,h,m,s;  
         if (leftTime>=0) {  
            d = Math.floor(leftTime/1000/60/60/24);  
            h = Math.floor(leftTime/1000/60/60%24);  
            m = Math.floor(leftTime/1000/60%60);  
            s = Math.floor(leftTime/1000%60);                     
        }  
         //将倒计时赋值到div中  
        document.getElementById("_d").innerHTML = d+"天";  
        document.getElementById("_h").innerHTML = h+"时";  
        document.getElementById("_m").innerHTML = m+"分";  
        document.getElementById("_s").innerHTML = s+"秒";  
         //递归每秒调用countTime方法,显示动态时间效果  
         
	}
	,1000);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VR(Virtual Reality)即虚拟现实,是一种可以创建和体验虚拟世界的计算机技术。它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真,使用户沉浸到该环境中。VR技术通过模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。 VR技术具有以下主要特点: 沉浸感:用户感到作为主角存在于模拟环境中的真实程度。理想的模拟环境应该使用户难以分辨真假,使用户全身心地投入到计算机创建的三维虚拟环境中,该环境中的一切看上去是真的,听上去是真的,动起来是真的,甚至闻起来、尝起来等一切感觉都是真的,如同在现实世界中的感觉一样。 交互性:用户对模拟环境内物体的可操作程度和从环境得到反馈的自然程度(包括实时性)。例如,用户可以用手去直接抓取模拟环境中虚拟的物体,这时手有握着东西的感觉,并可以感觉物体的重量,视野中被抓的物体也能立刻随着手的移动而移动。 构想性:也称想象性,指用户沉浸在多维信息空间中,依靠自己的感知和认知能力获取知识,发挥主观能动性,寻求解答,形成新的概念。此概念不仅是指观念上或语言上的创意,而且可以是指对某些客观存在事物的创造性设想和安排。 VR技术可以应用于各个领域,如游戏、娱乐、教育、医疗、军事、房地产、工业仿真等。随着VR技术的不断发展,它正在改变人们的生活和工作方式,为人们带来全新的体验。
VR(Virtual Reality)即虚拟现实,是一种可以创建和体验虚拟世界的计算机技术。它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真,使用户沉浸到该环境中。VR技术通过模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。 VR技术具有以下主要特点: 沉浸感:用户感到作为主角存在于模拟环境中的真实程度。理想的模拟环境应该使用户难以分辨真假,使用户全身心地投入到计算机创建的三维虚拟环境中,该环境中的一切看上去是真的,听上去是真的,动起来是真的,甚至闻起来、尝起来等一切感觉都是真的,如同在现实世界中的感觉一样。 交互性:用户对模拟环境内物体的可操作程度和从环境得到反馈的自然程度(包括实时性)。例如,用户可以用手去直接抓取模拟环境中虚拟的物体,这时手有握着东西的感觉,并可以感觉物体的重量,视野中被抓的物体也能立刻随着手的移动而移动。 构想性:也称想象性,指用户沉浸在多维信息空间中,依靠自己的感知和认知能力获取知识,发挥主观能动性,寻求解答,形成新的概念。此概念不仅是指观念上或语言上的创意,而且可以是指对某些客观存在事物的创造性设想和安排。 VR技术可以应用于各个领域,如游戏、娱乐、教育、医疗、军事、房地产、工业仿真等。随着VR技术的不断发展,它正在改变人们的生活和工作方式,为人们带来全新的体验。
基于GPT-SoVITS的视频剪辑快捷配音工具 GPT, 通常指的是“Generative Pre-trained Transformer”(生成式预训练转换器),是一个在自然语言处理(NLP)领域非常流行的深度学习模型架构。GPT模型由OpenAI公司开发,并在多个NLP任务上取得了显著的性能提升。 GPT模型的核心是一个多层Transformer解码器结构,它通过在海量的文本数据上进行预训练来学习语言的规律。这种预训练方式使得GPT模型能够捕捉到丰富的上下文信息,并生成流畅、自然的文本。 GPT模型的训练过程可以分为两个阶段: 预训练阶段:在这个阶段,模型会接触到大量的文本数据,并通过无监督学习的方式学习语言的结构和规律。具体来说,模型会尝试预测文本序列中的下一个词或短语,从而学习到语言的语法、语义和上下文信息。 微调阶段(也称为下游任务训练):在预训练完成后,模型会被应用到具体的NLP任务中,如文本分类、机器翻译、问答系统等。在这个阶段,模型会使用有标签的数据进行微调,以适应特定任务的需求。通过微调,模型能够学习到与任务相关的特定知识,并进一步提高在该任务上的性能。 GPT模型的优势在于其强大的生成能力和对上下文信息的捕捉能力。这使得GPT模型在自然语言生成、文本摘要、对话系统等领域具有广泛的应用前景。同时,GPT模型也面临一些挑战,如计算资源消耗大、训练时间长等问题。为了解决这些问题,研究人员不断提出新的优化方法和扩展模型架构,如GPT-2、GPT-3等,以进一步提高模型的性能和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值