首页 > 其他分享 >【Web】0基础学Web—函数、箭头函数、函数闭包、函数参数、js作用域、字符串

【Web】0基础学Web—函数、箭头函数、函数闭包、函数参数、js作用域、字符串

时间:2024-12-21 21:31:04浏览次数:6  
标签:function Web console log 函数参数 let hello 函数

0基础学Web—函数、箭头函数、函数闭包、函数参数、js作用域、字符串

函数

function 函数名(形参){
函数体
return val //只能return一个值
}

函数声明

<script>
function add(a, b) {
    return a + b
}
let a = 10, b = 20
let c = add(a, b)
console.log(c)
</script>

函数调用函数

<script>
function add2(a, b, c) {
    return add(a, b) + c
}
console.log(add2(1, 2, 3))
</script>

事件调用函数

<script>
function show(num) {
    for (let i = 0; i < num; i++) {
        console.log('hello')
    }
}
</script>

匿名函数

<script>
function test(a,b){
    console.log(a-b)  
}
test(10,5)
let test=function(a,b){
    console.log(a-b)
}
</script>

立即执行函数

立即执行函数的末尾必须加’ ;’

<script>
(function (a, b) {
    console.log(a - b)
})(10, 5);
+function (a, b) {
    console.log(a + b)
}(10, 5);
</script>

箭头函数

(形参列表)=>{
函数体
return 值
}
如果形参只有一个,()可以省略
如果{}内只有一句,{}可以省略
如果{}内只有一句并且是return,{}和return可以省略

<script>
let test = (a, b) => a + b
console.log(test(1, 2))
let test2 = () => {
    console.log('你好')
    console.log('你好2')
}
test2()
let test3 = n => {
    for (let i = 0; i < n; i++) {
        console.log('hello')
    }
}
test3(3)
</script>

函数闭包

1.外部函数嵌套内部函数
2.内部函数访问外部函数的变量
3.内部函数被返回
特点:外部函数的变量被内部函数引用,长时间占用内存,无法释放,造成内存泄漏

<script>
//闭包
function outter() {
    let a = 1
    function inner() {
        ++a
        console.log(a)
    }
    return inner
}
let inn = outter()
inn()
inn()
inn()
</script>

函数参数

位置参数 test(a,b,c)
默认参数 test(a,b=2),默认参数放到最后
不定项参数 test(…params)
函数的内置对象 arguments可有接收所有参数

<script>
function test(a, c, b = 10) {
    console.log(a + b + c)
}
test(10, 30)
//不定项参数
function test2(...params) {
    console.log(params)  //数组
    console.log(params[1])  //数组
}
test2(1, 2, 3, 4, 5)
//arguments内置对象接收
function test3() {
    console.log(arguments)  //类数组
    console.log(arguments[2])
}
test3(1, 2, 3, 4, 5, 6)
//arguments 和形参 相互映射影响
function test4(a, b) {
    console.log(a, b)  //3  5
    a = 10
    console.log(arguments) //10 5
    arguments[1] = 20
    console.log(a, b)  //10 20
}
test4(3, 5)
</script>

js作用域

全局变量,任何地方可以访问
暗示全局变量,属于window
局部变量,属于函数

<script>
let a = 10   //全局变量
function test() {
    a++
    let c = 10  //局部
    b = 20   //暗示全局变量
    console.log(a)
    console.log(this) //window
}
window.test()
//   console.log(c)
console.log(window.b)
window.alert(11)
window.confirm('确认吗')
let test2 = () => console.log(this)
test2()  //Window
</script>

字符串

字符串创建

<script>
let str = 'hello'
let str2 = new String('hello') //新建一个对象hello
console.log(str == str2)  //true
console.log(str === str2)  //false,不是同一个地址
</script>

字符串方法

<script>
let s = 'hello world'
console.log(s.length) //长度 11
console.log(s.charAt(2)) //l   根据下标获取对应字符
console.log(s[1]) //e
console.log(s.indexOf('o')) //4     第一个下标,找不到返回-1
console.log(s.lastIndexOf('o')) //7 最后一个下标
console.log(s.charCodeAt(1)) //101  unicode值
</script>

字符串拼接

<script>
console.log(s.concat('你好')) //hello world你好
console.log(s) //hello world
console.log(s.includes('lll')) //false 是否包含
console.log(s.startsWith('he')) //true  开头
console.log(s.endsWith('d')) //true   结尾
n = '5'
console.log(n.padStart(2, 0)) //05   开头填充
console.log(n.padEnd(2, 0)) //50   末尾填充
console.log(s.repeat(3)) //hello worldhello worldhello world
</script>

字符串截取

<script>
//slice(start,end) 可正可负,end不闭合
console.log('hello world'.slice(-5, -1))
//substring(start,end) 只能为正,end不闭合
console.log('hello world'.substring(2, 8))
// substr(start,len)  从start截取len个字符
console.log('hello world'.substr(2, 3))
</script>

去除字符串首尾空格

<script>
console.log('  hello world  '.trim())
console.log('  hello world  '.trimStart())
console.log('  hello world  '.trimEnd())
</script>

遍历

<script>
//根据下标遍历
for (let i = 0; i < s.length; i++) {
    console.log(s[i], s.charAt(i))
}
//根据下标遍历
for (const i in s) {
    console.log(s[i])
}
//直接遍历元素
for (const ch of s) {
    console.log(ch)
}
</script>

其他

<script>
//拆分
console.log('hello world'.split(' '))  //['hello', 'world']
//替换
console.log('hello world'.replace('ll', '你好')) //he你好o world
//g 全局匹配,匹配所有
console.log('a12b3'.replace(/\d+/g, '-')) //a-b-
console.log('a12b3cc'.split(/\d+/g)) //['a', 'b', 'cc']
//search 查找
console.log('a12b3cc'.search('c')) //5  返回第一个下标
console.log('ab3cc12'.search(/\d+/g)) //2  返回第一个下标
</script>

标签:function,Web,console,log,函数参数,let,hello,函数
From: https://blog.csdn.net/2201_75539182/article/details/144401761

相关文章

  • javaweb练习分析——4
    对于单表的查询可能会有多种,其中较为简单的是查询所有、根据id查询、根据其他单一条件查询,但有时会遇到相较于前面的操作较为复杂的操作,就是多条件查询。需要根据前端页面输入的条件来查询。对比简单的查询操作第一个区别是用注解不在适用,要在mapper.xml文件中书写sql语句<sele......
  • javaweb练习分析——5
    在完成对单表的增删改查操作后,就要实现项目中的业务逻辑,比如登录操作、还有目前这个项目中的房产之间的买卖业务逻辑,需要不同角色之间共同完成功能,将多表联系起来。以顾客购买房产为例,第一步首先要将在售的房产呈现出来,之后就是顾客可以点击地址查看详细信息,然后顾客点击交易可以......
  • javaweb练习分析——3
    先实现简单的对各个单表之间的增删改查的操作就以增加数据为例,由于比较简单,就可以直接用注解的方式来实现在mapper文件中,书写sql语句@Insert("insertintohouseinfovalues(#{houseId},#{roomType},#{address},#{year},#{area},#{sales},#{status},#{agent},#{customer})")......
  • JetBrains WebStorm 2024 破解教程附资源(亲测可用)
    1、下载安装包WebStorm20242、安装教程1、双击安装,弹窗安装对话框  2、更改安装目录至D盘,点击下一步 3、 都进行勾选,点击下一步 4、默认,点击安装 5、安装过程中,等待安装完成,选择之后重启,点击完成 6、激活,打开随行下载的文件夹,找到激活工具,双击执行  ......
  • javaweb练习分析——2
    在进行完文件的配置之后,就要按照数据库封装bean,放在pojo层中,然后创建相应的mapper.xml文件(创建时要用/间隔)之后根据项目要求,搭建主界面。根据不同角色的功能,搭建各自的界面,以其中一个为例<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname=......
  • javaweb练习分析——1
    首先在写项目时首先要做的是创建一个web项目,配置好pom.xml文件,mybatis.xml文件,还有创建相应的结构比如pojo、mapper、service等等。xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion>......
  • webbroker调用axios.min.js
    <head><scriptsrc="axios.min.js"></script></head><body><p>实现前端调用后端的HTTP请求的方法:<br>https://www.cnblogs.com/hgdzjp/p/9438893.html</p><pid="demo22">aaa</p><scri......
  • MySQl常用函数解析
    1.LEAST函数:返回多个值中的最小值LEAST(value1,value2,...,valueN)2.GREATEST函数:返回多个值中的最大值GREATEST(value1,value2,...,valueN)字符串比较规则:从字符串的第一个字符开始,逐个字符进行比较,直到找到不同的字符为止。如果字符串的前几个字符相同......
  • 《操作系统真相还原》实验记录1.2——print.S打印函数
    一、print.S文件说明put_char函数(每次只打印一个字符)是各种打印函数的核心1.1功能说明put_char函数的处理流程备份寄存器现场;获取光标坐标值,光标坐标值是下一个可打印字符的位置;为了在光标处打印字符,需要读取光标坐标寄存器,获取光标坐标值。获取待打印的字符;......
  • ssm基于web甜品店点餐系统4nxfw--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景与意义随着信息技术的飞速发展,互联网已经成为人们日常生活的重要部分。在餐饮行业中,传统的点餐方式已经难以满足现代消费者的需求。为......