js
函数特点:封装代码,代码的重用性强!
在js中,函数分为两种:自定义函数、系统函数(内置函数)
系统函数里还包括预定义函数。
预定义函数是指不属于任何对象,他们的使用也不需要通过任何对象来应用。全局的函数
1.eval() 将字符串数字转换成数字,可进行直接执行js代码
2.isNaN() 判断参数是否是NaN,如果是,返回true,否则返回false。
Number.isNaN() 不会进类型行转换,只有参数是NaN才会返回true,否则返回false。
3.parseInt()/parseFloat() 将数字字符串转化为一个数值
4.isFinite() 用来确定参数是否是一个有限数值. 如果是有限数值,返回true,否则返回tfalse。(NaN 、Infinity、-Infinity....)
进行类型转换
Number.isFinite()判断参数是否是一个有限制数值
不进行类型转换
5.encodeURI()参数参数:字符串
把字符串转义为计算机编码
编码
自定义函数
function 函数名(){ 函数体; }
说明:
function 定义函数关键字,
“函数名” 是你给函数取的名字,
“函数体” 是为完成特定功能的代码。
函数名 必须是唯一的
函数定义好后,不能自动执行,需要调用它,直接在需要的位置写函数名
匿名函数 function函数名()
把整个匿名函数作为一个值赋值给变量,该变量就是函数名
IIFE立即调用函数表达式 :(function(){函数体;})
全称: Immediately Invoked Function Expression
自我执行的函数
调用 : ();
(+,—,!,~)function(){函数体;}
return 跳转语句 终止函数 找出口
arguments 参数对象 所有函数内部都有
arguments.length实参个数
arguments.callee 函数本身
fun();递归 函数自己调用自己
预编译:代码解释之前
全局预编译 (普通函数 整体提前;变量 仅仅声明提前)
第一步创建GO对象(global Object) 。
第二步找变量声明,将变量声明作为GO对象的属性值传进去,赋值为undefined。
第三步找函数声明(不要找函数表达式),赋值于对应的GO属件值。
作用域:变量起作用的范围
1.全局作用域
2.局部作用域(函数作用域)
在函数外[声明]的变量我们称为全局变量
在函数内[声明]的变量我们称为局部变量
变量未声明直接使用,默认自动为全局变量
先在自己的作用域里查找这个变量,如果找到就是该值,如果找不到,去上级作用域里查找...
声明提前,赋值不提前
局部预编译
.1.创建AO (Active Object) 对象
2.找函数的形参和变量声明,将变最声明和形参作为AO属性名,值为undefined,
3.将实参值和形参统一
4.在函数休里面找函数声明(只找函数声明,不找函数表达式),值赋予函数体
闭包:有权访问另外一个函数作用域里变量的函数(大白话:函数里套函数)
优点:
1.保护函数内的变量安全,防止全局变量污染问题
2.在内存中维持一个变量
缺点:
由于闭包会使得图数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。
使用不当可能引起内存泄漏
IIFE :模仿快作用域
(function(形参1, 形参2, ..{ })(实参1, 实参2,..)
+(function(形参1, 形参2, ..{ })(实参1, 实参2,..)
-(function(形参1, 形参2, ..{ })(实参1, 实参2,..)
!(function(形参1, 形参2, ..{ })(实参1, 实参2,..)
~(function(形参1, 形参2, ..{ })(实参1, 实参2,..)
可以通过 .value 来获取值的标签:input textarea select
document.getElementById(""); 通过id值来获取元素对象
oDiv.innerText 识别文本
oDiv.innerHTML 识别标签
className 获取button上的类名
对象
本地对象
| 内置对象
### Math 对象
Math.PI
| 圆周率
Math.ceil()
| 向上取整
Math.floor()
| 向下取整
| 返回值比参数小或者等于
Math.round(num)
| 返回与num最接近的整数,四舍五入
Math.max(x,y)
| 返回一组数中的最大值
Math.min
Math.random()
| 随机数
| Math.random()//[0,1)取值是小数
| Math.round(Math.random()*10)//[0,10] 取值是整数
【m,n】
| Math.floor(Math.random()*(n-m+1)+m)
Date 对象
语法
| var mydate= new Date()
.toLocaleString()
| 本地时间,年月日时分秒
.toLocalDateString()
| 年月日
.toLocalTimeString
| 时分秒
get/set
.getFullYear()
| 年份
.getMonth()
| 月份,从0开始
.getDate()
| 日期
.getHours()
| 时
.getMinutes()
.getSeconds()
.getMilliseconds()
.getTime()
| 距离1970年的毫秒数
.getDay()
| 星期,从0开始,星期日为0
Date.now()
new Date()
| 当前时间
字符串对象
var strObj = new String();
strObj.length 字符串长度
索引 [0, strObj.length-1]
访问字符 strObj[索引]
方法
strObj.indexOf(参数1,参数2)
从参数2的位置开始查找参数1子串在整个字符串中第一次出现的位置
参数1:必需 查找的子串
参数2:可选 开始查找的位置 若省略,从0开始查找
返回值:如果能查找到子串,返回子串所在的位置,如果查找不到该子串,返回-1
strObj.replace(参数1,参数2) 用参数2替换参数1
参数1:必需 被替换的子串或正则 (若全局替换 添加 g)
参数2:必需 用来替换的字符串 返回值:替换后的字符串
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统