首页 > 其他分享 >普普通通入门js案例(原生)

普普通通入门js案例(原生)

时间:2024-01-18 23:22:25浏览次数:28  
标签:function arr console 入门 js str var 普普通通 log

数组中数据的遍历

	var arr = [34, 3, 4, 3];
	for(i = 0; i < arr.length; i++){
		console.log(arr[i]);
	}

求数组中的最大值

	var arr = [34, 3, 4, 3];
	max = arr[0];
	for(i = 1; i < arr.length; i++){
		if(max < arr[i]){
			max = arr[i];
		}
	}

求数组中的平均值

	var arr = [34, 3, 4, 3];
	for(i = 0; i < arr.length; i++){
		count += arr[i];
	}
	avarage = count / arr.length;
	console.log(avarage);

数组中字符类型的遍历连接

	var arr = ['red', 'green' , 'blue']
	var str = '';
	var sep = '*';
	for(var i = 0; i = arr.length; i++){
		str = arr[i] + sep;
	}
	console.log(str);

将数组满足条件的值取出

	方法1
	var arr = [34, 3, 4, 3];
	var newArr = [];
	j = 0;
	for(i = 0; i < arr.length; i ++){
		if(arr[i] > 界定值){
			newArr[j] = arr[i];
			j++;
		}
	}
	方法2
	var arr = [34, 3, 4, 3];
	var newArr = [];
	for(i = 0; i < arr.length; i ++){
		if(arr[i] > 界定值){
			newArr[newArr.length] = arr[i];
			//newArr = push(arr[i]);	此处可用push()内置对象来进行后方插入函数
		}	//空数组长度为0
	}

删除指定数组元素

	var arr = [34, 3, 4, 3];
	var newArr = [];
	for (i = 0; i < arr.lenght; i++){
		if (arr[i] != 0){
			new[newArr.length] = arr[i];
		}
	}
	console.log(newArr);

冒泡 排序sort

	var arr = [34, 3, 4, 3];
	for (i = 0; i < arr.length - 1; i++){
		for (j = 0; j <= arr.length - i - 1; j++){
			if (arr[j] < arr[j + 1]){
				var temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}

传入数组并求最大值

   function getMax(arr){
   	var max = arr[0];
   	for(i = 1; i < arr.length; i++){
   		if(max < arr[i]){
   			max = arr[i];
   		}
   	return max;
   	}
   }
   	一般函数不直接输出,而是给调用者一个返回值,私聊
   var arr = [34, 3, 4, 3];
   var re = getArrMax(arr);
   	使用变量接受返回结果,直接输出变量更简单
   console.log(re);

利用arguments求任意个数的最大值

	function getMax(){	//你随便传参,内部arguments整合实参为一个伪数组
		var max = arguments[0];
		for(i = 0; i < arguments.length -1; i++){
			if(max < arguments[i]){
				max = arguments[i];
			}
		return max;
		}
	}
	var re = getMax(1,3,4,32,234,5,23);
	console.log(re);

利用函数翻转数组

	function reverse(arr){
		var newArr = [];
		for(var i = 0; i < arr.length; i++){
			newArr = arr[arr.length-i];
		return newArr;
	}
	var arr1 = [34, 3, 4, 3];
	var re = reverse(arr1);
	console.log(re);

instanceof

instanceof 可以检测是否为数组,布尔值true,false
	console.log(arr instanceof Array);//输出为true
	Array.isArray(数组)//h5新增ie9以上支持

利用indexOf()查询数组元素,实现数组去重

	function quchong(arr){
		for(i = 0; i < arr.length; i++){
			var newArr = [];
			if (indexOf(arr[i]) === -1){//indexOf()返回的是索引号,没有负数,可以用-1判断
				newArr.push(arr[i]); //数组名.push()在数组后方插入元素,对象调用
			}
		}
		return newArr;
	}
	var arr = [34, 3, 4, 3];
	var re = quchong(arr);

利用indexOf()查询字符串目标字母的个数,并输出每个字母下标

	function countStr(str,zimu){ //统计某个字母个数
		var num = 0;
		index = str.indexOf(zimu);
		while(index !== -1){
			num++;
			console.log('字母的下标为' + index);
			index = str.indexOf(zimu,index + 1);
		}
		console.log('字母的个数为:' + num);
	}
	var str = 'fjaafsdfsdgsdgdsadf';
	var re = countStr(str,'d');

根据位置字符
字符串名.charAt(index);//根据索引位置返回字符
(未完成下面的函数)

	function indexSetReturn(str){
		for(i = 0; i < str.length; i++) {
			console.log(charAt(str[i]));
	}
	var str = 'sdfhbhgdfgsjkdfshkgdfdks';
	var re = indexSetReturn(str);

统计字符串中出现次数最多的字符,并统计次数
- 利用charAt()遍历字符串,然后将遍历的字符存到对象中,
- 如果对象没有该属性则为1,有该属性则该属性+1,最后遍历对象得到最大值和该字符;
- 对象['属性名'],查找对象是否存在此属性,返回布尔值,
- 对象['属性名'] = 参数,创建一个此属性并为其赋值

	function countMaxChar(str){
		var countMax = new Object()
		//var countMax = {};这是两种方法创建空对象
		for (i = 0; i < str.length; i++) {
			var chars = str.charAt(i); //每个循环取到的字符
			if (countMax[chars]) {
				countMax[chars]++;
			} else {
				countMax[chars] = 1;
			}	
		}
	}

替换字符串某个字符

	function replaceChars(str,reChar,thisChar){
		while(str.indexOf(reChar) !== -1){
			str.replace('thischar','reChar');
		}
	}
	str = 'sahdafhsakdhflgsdaf';
	re = replaceChars(str,'o','f');
	console.log(re);

翻转传入的字符串

function reverseString(str) {
    let newArr = '';
    str = str.split('');
    for (var i = str.length - 1; i >= 0; i--) {
        newArr += str[i];
    }
    str = newArr
   return str;
 }
 reverseString("hello"); 

判断平闰年

function isRunYear(year){
		var flag = false;
		if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
			flag = true;
		}
		return flag;
	}
	var re = isRunYear(2000);
	console.log(re);

函数相互调用,输入年份判断2月份天数

	//判断平闰年
	function isRunYear(year){	//这里是形参
		var flag = false;
		if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
			flag = true;
		}
		return flag;
	}
	//根据平闰年,输出月份
	function backDay(){ //没给值,默认调用内部程序,程序入口
		var year = prompt('请输入年份:');
		if (isRunYear(year)){	//这里是实参
			alert('当前年份是闰年,二月份有29天')
		} else {
			alert('当前年份是平年,有28天');
		}
	}

预解析案例演示

	var num = 10;	//var提升,函数定义提升,赋值滞后,调用在num还要往后
	fun();
	function fun(){
		console.log(num);
		var num = 20;	//var在函数内提升,num滞后
	}
	//预解析为:
	var num
	function fun(){
		var num;
		console.log(num);
		num = 20;
	}
	num = 10;
	fun();//进入函数后,num也进行了定义但未赋值,undefined

经典例题

	f1();
	console.log(c);
	console.log(b);
	console.log(a);
	function f1(){
		var a = b = c = 9; //var a = 9, b = 9, c = 9;只有a前面有var
		console.log(a);
		console.log(b);
		console.log(c);
	}
	//预解析为:
	function f1(){
		var a;	//只声明一个a
		a = 9;	//不声明直接调用,则是全局变量
		b = 9;
		c = 9;
		console.log(a);	//局部打印9
		console.log(b);	//局部打印9
		console.log(c); //局部打印9
	}
	f1();
	console.log(c); //全局打印9
	console.log(b); //全局打印9
	console.log(a); //因为内部声明了,局部变量a无法在全局打印
					//报错,a is not defined

格式化日期年月日

	function getDate(){
		var date = new Data();
		var year = date.getFullYear();
		var month = date.getMonth() + 1;
		var dates = date.getDate();
		var arr = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];
		var day = date.getDay();
		return '今天是:' + year + '年' + month + '月' + date + '日' + arr[day];
	}
	var p = document.querySelector('p');
	p.innerText = getDate();

密码小眼睛点击看见看不见

	var eye = document.getElementById('eye');
	var pwd = document.getElementById('pwd');
	var flag = 0;
	eye.onclick = function() {
		if (flag == 0){
			pwd.type = 'text';
			eye.src = 'imges/open.png'
			flag = 1;
		} else {
			pwd.type = 'password '
			eye.src = 'imges/close.png'; 
			flag = 0;
		}  //这是点击后显示和隐藏的操作,通过flag来判断点过没有
		pwd.type = 'text';
	}

//使用className进行类名替换更改样式
	//如果进行简单的html的样式更改,可用style行内样式更改,权重比css高
	var div = document.querySelector('div');
	div.onclick = function (){
		//给div里的sytle属性赋值
		this.sytle.backgroundColor = 'purple';
		this.style.width = '230px';
		this.style.fonSize = '25px';
		this.style.marginTop = '100px';
		//点击完毕后变色,变宽
	}
/* 	//如果进行复杂的html的样式更爱,可用class进行css样式更改
	.change {
		background-color: purple;
		color:#fff;
		font-size: 25px;
		margin-top: 100px;
	}
*/	var div = document.querySelector('div');
	div.onclic = function (){
		this.className = 'change';
		//当点击完毕后将.change改变为当前类名,原先的类会被覆盖\
		//如果要保留原先的类,则在原先的类基础上再写新的类名
		this.className = 'first change';
	}

通过displa:none隐藏元素,display:block;显示元素实现点击叉号关闭二维码

/* 	
	<div>
		<img src="#" alt="">
		<i class="class-btn">x</i>
	</div> 
*/
//以下为script标签包裹的代码
	var btn = document.querySelector('close-btn');
	var box = document.querySelector('.box');
	btn.onclick = function (){
		this.style.display = 'none';
	}
	
//通过js实现有序精灵图的遍历插入
	//前提将盒子里的li标签通过css将图片插入
	var lis = document.querySelector('li');
	for (var i = 0; i < lis.length; i++){
		var index = i * 间隔;
		lis[i].style.backgroundPosition = '0 ' + index + 'px';
		//页面的需要显示的用引号括住,变量用+号连接
	}
	
//onfocus获得焦点,onblur失去焦点
//文本框光标焦点则内部提示文字消失,焦点移开,内部提示出现
	var text = document.querySelector('input');
	text.onfocus = function (){
		//console.log('获得了焦点');
		if (this.value === '默认文字'){
			this.value = '';
		}
		//获得焦点要把用户输入的内容变深
		this.sytle.color = '#333';
	}
	text.onblur = function (){
		console.log('失去了焦点');
		if (this.value === ''){
			this.value = '默认文字';
		}
		//用户输入后,清空文本框后,内部默认文字颜色复原
		this.style.color = '#999';
		
		
//失去焦点就提醒密码较短,在后方有红色叉号和错误提示信息
	/* CSS代码
	 div {
		 width: 600px;
		 margin: 100px auto;
	 }
	 .maessage {
		 diaplay: inline-block;
		 font-size: 12px;
		 color: #999;
		 background: url(images/mess.png) no-repeat left center;
		 padding-left: 20px;
	 }
	 .wrong { 
		 color:red;
		 background: url(images/wrong.png)
	 }
	 .right {
		 color:green;
		 background-image:url(images/right.png);
	 }
	 
	 <div class="register">
		<input type=:"password" class="ipt">
		<p class="message">请输入6~16位密码</p>
	 </div>
	 
	 */	
	//js代码
	var ipt = document.querySelector('.ipt');
	var message = document.querSelector('.message');
	ipt.onblur = function (){
		//根据表单里值的长度判断
		if(this.value.length < 6 || this.value.length >16){
			console.log('错误');
			message.className = 'message wrong';
			message.innerHTML = '你输入的位数不对,要求6~16位';
		} else {
			message.className = 'message right';
			message.innerHTML = '输入格式正确';
		}
		
	}

标签:function,arr,console,入门,js,str,var,普普通通,log
From: https://www.cnblogs.com/SanshQ/p/17973658

相关文章

  • Node.js自建文档(部分)
    目录结构◢modulemoduleA.jsmoduleB.jsindex.js创建package.jsonnpminitindex.js内容constmoduleA={ getName(){ return"moduleAAAAA"; }}改变引入方式(common或module不能混用)添加字段: "type":"module"//es规范导入comment规范引入方式p......
  • Js(Javascript)的apply call 和bind区别
    ​ apply、call和bind是用于调用函数的三种不同方式,它们的主要区别在于函数调用时的上下文(this关键字)以及参数传递的方式。call和apply是用于立即调用函数并设置this上下文的方法,它们的主要区别在于参数传递的方式。bind不会立即执行函数,而是创建一个新的函数,将this......
  • Json转换工具类(基于google的Gson和阿里的fastjson)
    在项目之中我们经常会涉及到字符串和各种对象的转换,为此特地整理了一下常用的转换方法一、基于com.google.code.gson封装的json转换工具类 1.在pom.xml文件里面引入gson的依赖<dependency><groupId>com.google.code.gson</groupId><arti......
  • day 02java入门之Hello.java
    java命令行执行(注意代码编写用GBK,命令行窗口用GBK进行解析)注意public类名要和文件名一致,一个.java文件中最多只有一个public类java注意事项一个.java文件中若含有多个类时,编译完成后会生成相应个数的.class文件......
  • 跨语言调用神器SWIG介绍与使用入门
    安装依赖PCRE库apt-getinstalllibpcre2-dev下载安装$./configure$make$makeinstall介绍SWIG是一个软件开发工具,能够简化不同编程语言与C和C++程序连接的开发任务。简而言之,SWIG是一款编译器,它可以获取C/C++声明并创建访问这些声明所需的包装器,从而可从......
  • js.dom2
    复选框:input.checked=false;onload事件会在页面或图像加载完成后立即发生。<bodyonload="init()">functioninit(){setTimeout("showAD()",2000);}functioninit(){setInterval("changImg()",1);}正则表达式:用字符串来规定字符串的格式......
  • 使用JSZip库解压后台返回的Blob格式文件,并回显到element-ui的el-upload组件
    有一个报告列表,点击编辑的时候需要回显新建时上传的附件。后台提供了一个下载接口,但是会将所有上传的文件打包为一个压缩的blob。类似这种:leturlArr=[];urlArr=urlArr.concat(this.downLoadUrl.split(";"));this.$http.downLoadFile({url:urlArr.......
  • 一、nextjs如何使项目工程化(c-shopping电商开源)
    欢迎来到本系列文章,这些内容都是从我的开源项目C-Shopping衍生而来的。在这个系列中,我们将深入探讨Next.js和其他技术的各个方面,分享我在开发C-Shopping时积累的见解和最佳实践。如果你发现这些文章有帮助,请考虑在GitHub上为项目点亮一颗星星。你的支持对我来说意义重大,也......
  • tsx nodejs 增强支持执行typescript 以及esm
    tsx属于一个nodejs的增强包含的特性快速的按需ts以及esm编译支持commonjs以及esm包支持下一代ts扩展(.cts,.mts)隐藏体验特性警告tsrepl解析tsconfig.json适用的场景可以执行运行ts而不需要进行配置更好的与esm,cjs依赖交互说明tsx是一个不错的本地开发工具,可以方便不同模......
  • Web前端新手入门系列:案例1 招商银行页面的制作
    一次比较复杂的网页设计(对初学者而言)效果图代码可能不太符合规范,但效果差不多(HTML部分<!DOCTYPEhtml><htmllang="en"xmlns="http://www.w3.org/1999/xhtml"><head><metacharset="utf-8"/><title>招商银行</title>&......