| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> 04 双重循环 经典案例 函数 -> 正文阅读 |
|
[JavaScript知识库]04 双重循环 经典案例 函数 |
双重循环 ????第一步先创建一个tr里面10个td ????????// 获取table ???????var table=document.getElementById("table"); ????????// 定义一个初始字符串 ???????var str=""; ????// ???先给这个字符串增加一个tr ???????str+="<tr>"; ????????// 下面循环10次,每次给里面累加一个td ???????var i=0; ???????while(i<10){ ???????????str+="<td></td>"; ???????????i++; ???????} ????// ???最后结束是累加一个</tr> ???????str+="</、tr>"; ???????console.log(str) ????第二步把刚才创建一个tr的方式循环10次 var table=document.getElementById("table"); ???????var str=""; ???????var j=0; ???????循环创建10次tr ???????while(j<10){ ????????????str+="<tr>"; ????????????var i=0; ????????????while(i<10){ ????????????????str+="<td></td>"; ????????????????i++; ????????????} ????????????str+="</tr>"; ???????????j++; ???????} ???????table.innerHTML=str ??????? 九九乘法口诀表 var table=document.getElementById("table"); ???????var str=""; ???????var j=1; ???????while(j<10){ ????????????str+="<tr>"; ????????????var i=1; ????????因为乘法口诀表中列数小于等于当前行数 ????????????while(i<=j){ ????????i+"*"+j+"="+i*j ??变量+"*"+变量+"="+变量运算结果 ????????????????str+="<td>"+(i+"*"+j+"="+i*j)+"</td>"; ????????????????i++; ????????????} ????????????str+="</tr>"; ???????????j++; ???????} ???????table.innerHTML=str 最大公约数 ?var a=64,b=48; ?先找出两个数中最小的值 ????var min=a>b ? b : a; 让这个数不断减小,直到1为止,然后判断a和b除以这个不断减小的数是否可以被整除,如果两个都可以被整除,则这个树就是他们两个最大公约数 ????while(min>=1){ ????????if(a%min===0 && b%min===0){ ????????????break; ????????} ????????min--; ????} ????console.log(min); 最小公倍数 ?var a=12,b=16; 先求出最大值 ????var max=a>b ? a : b; ????循环判断不断让这个最大值递增,当小于等于a*b的积时,判断这个值是否能够被a和b整除,如果可以的话就是其最小公倍数 ????while(max<=a*b){ ????????if(max%a===0 && max%b===0){ ????????????break; ????????} ????????max++; ????} ????console.log(max); ?求素数 质数 ?只能被1和自身整除的树 ??2-100 ????var i=2; ????while(i<=100){ ????????var j=2; ???????假设每个数都是素数 ????????var bool=true; ????????while(j<i){ ????????????if(i%j===0){ ????????????????console.log(i+"这个数不是素数"); ???????????????如果有一个不是素数,则把bool设为false, ???????????????这时候循环完成判断时就不会认为它是素数了 ????????????????bool=false; ????????????????break; ????????????} ????????????j++; ????????} ????????if(bool){ ????????????console.log(i+"这个数是素数") ????????} ????????i++; ????} do while 先执行语句块,然后再判断条件 ????var i=0,s=0; ????????do{ ????????????s+=i; ????????????i++; ????????}while(i<=100); ????????console.log(s) 将一个链表的数据进行深遍历 ?var obj = { ????????????value: 1, ????????????link: { ????????????????value: 2, ????????????????link: { ????????????????????value: 3, ????????????????????link: { ????????????????????????value: 4 ????????????????????} ????????????????} ????????????} ????????}; ????????while(obj){ ????????????console.log(obj.value); ????????????obj=obj.link; ????????} for循环 ??for(变量的初始值;循环的条件;变量向条件运算的表达式){ ???????????? ????????} var s=0; ? ? ? ? // for(var i=0;i<=100;i++){ ? ? ? ? // ? ? s+=i; ? ? ? ? // } ? ? ? ? // console.log(s) 函数 命名函数 function ?函数名(){ } 当创建script标签时,首先就会把当前script标签中所有变量及函数名做预存储在栈中 栈就相当于内存 存储了小,堆相当于硬盘 存储量大 速度慢 函数除了会把函数名做预解析以外,还会把函数体存储在堆中,并且可以随时执行 var a=3; 在栈中开辟一个空间,这个空间名叫做a。里面存放了3这个值 在战中开辟一个空间,这个空间名就是函数名,然后把函数体存在堆中,在栈中空间里存储函数体在堆中地址 匿名函数 var 函数名=function(){ } 只有定义赋值完成后才可以调用当前函数,只能写在定义变量后执行函数 自执行函数 (function(){ })() ~function(){ }(); +function(){ }(); 构造函数创建 var 函数名=new Function(){ } 创建定义完成后才可以执行 var getSum=new Function("a,b","console.log(a+b)"); 把参数和函数体内的代码以字符串先后的顺序给入 函数式编程 ?函数外面除了变量没有其他代码,及其实进入函数执行 每个函数要有自己独立实现的功能,尽量不要将多个功能混在一个函数中描写 如果函数内部没有改变外部的变量和内容,这种函数叫做纯函数 n叫做参数 function fn(n){ } 函数的参数 定义函数时,函数名后括号内的变量叫做参数,当执行函数时,函数名后面添加的数据 会逐一赋值给参数,按顺序逐一赋值 这个参数变量 ?叫做形参 function fn(a,b){ ??} 执行函数时赋值的数据叫做实参 ??fn(3,4); 把实参赋值给形参 如果实参比形参数量少,没有赋值的形参结果时undefined 如果实参比形参多,多出来的实参,在形参中式无法接受 # 函数的return ????????function getSum(){ ????????????// 定义一个sum初始值 ????????????var sum=0; ????????????// 让i从0开始循环到arguments的长度(传参的数量) ????????????for(var i=0;i<arguments.length;i++){ ????????????????// 让sum不断累加实参 ????????????????sum+=arguments[i]; ????????????} ????????????// 返回这个计算完成结果 ????????????return sum; ????????} ???????var s=getSum(1,2,3,4,5,7,9) ????????console.log(s); ????return 还有跳出函数的作用,不再执行return后面的语句 ????return 必须写在函数里 ????return与break的区别 ????return 必须写在函数内,break必须写在循环或者switch中 如果在函数中有循环或者switch,如果使用return,直接跳出函数,不再执行return后面的语句 ????如果使用break只跳出当前循环语句或者switch,执行后面的语句, 直到函数内所有内容运行完成 |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 9:29:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |