<button onclick="alert(1)">Click</button>

<style>.active{color: red;background: yellow;}</style><script>function toggleColor() {document.querySelector("h1").classList.toggle("active");}</script><button onclick('toggleColor')></button>

html中的代码:
function toggleColor() {document.querySelector("h1").classList.toggle("active");}
<script src="toggle.js"></script>

<script>//传统方式:在es6之前 没有常量// 变量:数据共享let email = "admin@qq.com";console.log(email);console.log(email);console.log(email);</script>

let user;console.log(user);

赋值null,相当于把这个变量删除
userName=null;console.log(userName);
常量通常使用大写,多个单词之间使用下划线 这个是不允许被更新的
//常量const GENDER = "male";
数据类型
驼峰式:userName, unitPrice帕斯卡式:UserName UnitPrice蛇形式:user_name unit_price匈牙利式:将数据类型放在变量的最前面object类型的:oBtn推荐使用驼峰式
1、原始类型:数值 字符串 布尔型 undenfined null
<script>// 一旦将数据类型确定,那么基于这个数据的允许的操作也就确定了console.log(100 * "abc"); // NaN</script>
输出的就是perper
function getName(){}getName.userName="perper";console.log(getName.userName);
通常只有相同类型的数据才在一起参与计算,这样的运算才有意义 比如100+100
+ 除了表示加法,也是字符串的拼接运算符
== 也会触发自动类型转换,它是非严格判断,它只检查值,不检查类型。建议使用”===”,它是要求值相等 且类型也相等,它不会触发自动类型转换。
console.log(100 == “100”);
一般函数分两步:
声明:
function test(){}
调用:
test();
函数允许重写,或者说是函数声明提升
<script>function getName(name){console.log("welcom to :", name)}console.log(getName("xxxxx"));function getName(name){console.log("欢迎:", name);}</script>
上述代码输出的是欢迎xxxxx
如果不希望函数提升,必需先声明在使用 用匿名函数
let getName = function(name){console.log(name);}
匿名函数就是将一个函数的声明作为值赋值给一个变量或常量,然后通过这个变量或常量来引用这个函数的声明
函数都是单值返回
let sum = function(a,b){return a+b;}console.log(sum(1,2));
如果只给一个值 那么返回的就是NaN
console.log(sum(1));

我们也可以给函数一个默认参数
sum = function(a, b=1){return a+b;}console.log(sum(1));
归并参数,rest语法,将所有参数压到一个数组中来简化参数的获取过程
let sum = function(...arr){console.log(arr);}console.log(sum(1,2,3,4,5,6,7));

这样得到的参数怎么相加?可以使用for进行遍历,也可以使用reduce()
let t=0;sum = function (...arr) {for (let i = 0; i < arr.length; i++) {t += arr[i];}return t;};console.log(sum(1, 2, 3, 4, 5, 6, 7));sum = function (...arr) {return arr.reduce((p, c) => p + c); //28};console.log(sum(1, 2, 3, 4, 5, 6, 7));

使用函数作为参数,或者将函数作为返回值。
fucntion demo(f){reuturn f;}}console.log(demo(function(){}));

function demo() {return function () {return "abc";};}let a = demo();console.log(a);console.log(a());

函数作为参数 也叫回调函数。
function sum(a,b,c,d){return a+b+c+d;}console.log(sum(1,2,3,4));
我们可以将此函数进行柯里化 内层函数可以访问外层函数
let sum = function(a,b){return function(c,d){return a+b+c+d;};};let f1 = sum(1,2);console.log(f1(3,4));

let sum = function (a) {// 柯里化return function (b) {return function (c) {return function (d) {return a + b + c + d;};};};};let res = sum(1)(2)(3)(4);console.log(res);
结果都是一样的
纯函数就是不调用自身之外的参数
//这个就不是纯函数 他调用了自身之外的参数clet c= 199;function sum(a,b){return a+b+c;}//这个是纯函数function sum(a,b){return a+b;}
匿名函数,可以使用箭头函数来简化
let sum = function(a,b){return a+b;}let sum = (a,b) => {return a+b};//如果函数体只有一句参数 可以删除{} 并且自带returnlet sum = (a,b) => a+b;//如果只有一个参数,连参数列表的圆括号 都可以删除 推荐括号加上,带上去可以容易看出来不是个变量 而是参数let tips = name => console.log(name);
注意:如果函数中要使用到this的时候,就不要用箭头函数了 箭头函数不支持this,所以箭头函数不能当构造函数用。
就是声明调用二合一。
模板 ()()
//一个普通函数function sum(a,b){return a+b;}//转换成立即执行函数(function sum(a,b){return a+b;})(1,2);
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号