WEB学习笔记3

输入输出语句

外部js:这种写法有一个不好的地方就是,两个不同的开发人员在使用不同的js写function的时候有可能造成重复,导致程序紊乱。在这推荐一种用json格式方式书写js函数的方法

变量:

变量命名规范:

let和var的区别:

const常量:

字符串类型:

布尔类型:

1.noshade,用来表示有无阴影,多用于在<hr />标签当中

2.ckecked,用来表示是否默认选中,多用于单选按钮<input type="radio" />和多选按钮<input type="checkbox" />中,需要注意的是,在<input type="radio" />中需要用相同的name才能达到单选框的效果

3.selected,用来表示是否优先显示,用于下拉表单<select></select>和只能下拉表单<datalist>中

4.autofocus,用来自动获取焦点,用于有输入框的<input />标签中

5.readonly,只读属性,可以获取焦点,数据会传递给后台,适合于能输入的文本框,比如text

6.disabled,禁用属性,可以使其无法获取焦点,数据无法传递给后台,在输入文本和按钮都可以用

7.require,用来表示必须选择,多用于<input />标签中

显示转换:当系统默认转换不能转换的时候,而我们又需要把某一类型改为另一个类型,这个过程我们称之为显示转换也叫做强制转换

运算符:

逗号操作符

//简化一次性定义多个变量的操作

var a = 1;

var b = 2;

var c = 3;

var a = 1,b = 2, c = 3;//简化一次性定义多个变量的操作

赋值操作符

var a = 1;

//+= 加完后面的值后,在进行赋值

a += 1;//把前面值(变量)+ 后面的值,最终赋值给前面的变量

a = a + 1;

//*=

//a * = 2;

a = a * 2;//把前面值(变量) * 后面的值,最终赋值给前面的变量

//%=

a %=2;

a = a % 2;//把前面值(变量) % 后面的值,最终赋值给前面的变量

取余符号 %

var b = 100 % 2;//100 / 2 = 50(商值) ··· 0(余数)

console.log(b) //0

关系操作符

最终会返回一个布尔值:true / false

* ==:比价两个的值是否相等

* === 全等于,除了值,类型也要相等才算相等

* !=: 不等于.两个值不等于才会返回true

*/

var dd = 110;//number

var ee = "110";//string

console.log(dd == ee//110 110 true

console.log(dd === ee)//110 110 Number String false

var ff = 20;

var gg = 30;

console.log(ff != gg) //true

三元运算符

* 格式:表达式1:? 表达式2: 表达式3:

* 表达式1成立,则执行表达式2.表达式1不成立,执行表达式3

*

* 如果表达式1成立,就会返回表达式2的值

* 如果表达式1不成立,就会返回表达式3的值

*/

var num = 2 > 1 ? 2 : 1;//如果2>1是真的,那么表达式返回2.如果2>1是假的,那么表达式返回1.

var num2 = 2 > 1 ? 1+1 : 1;

var num3 = 2 > 1 ? "真" : "假";

if(2 > 1){

console.log("真")

}else{

console.log("假")

}

console.log(num3)

++:递增操作符

* 对变量自身+1

* --:递减操作符

* 对变量自身-1

*

* 1. 递增操作符在变量前面

* 先执行递增操作,再执行本行代码

* 2.递增操作符在变量后面

* 先执行本行代码,再执行递增操作

*/

var gg = 1;

//gg++;//对变量自身+1 gg = gg + 1;

//console.log(gg)//2

//console.log(++gg);//2先执行 +1操作,再执行打印函数

console.log(gg++);//1 先执行打印函数,再执行+1操作

console.log(gg);//2

循环

//在for循环的自增变量位置,前++和后++没有区别

for(var i = 0;i < 100;i++){

console.log(i);//0~99

}

for(var i = 0;i < 100;++i){

console.log(i);//0~99

}

逻辑运算符:

单分支语句、双分支语句:

单分支:

// 条件表达式 本质是布尔表达式(结果为布尔值)

// 执行顺序:先做条件表达式的判断,判断结果为真,进入if语句执行代码块;判断为假,跳过if语句代码块,然后执行后续代码

if(条件表达式){

// 语句块

}

双分支:

// 双分支if语句

/*

格式:

if(条件表达式){

// 语句块1

}else{

// 语句块2

}

执行顺序:先做条件表达式的判断,如果判断结果为真,就会执行语句块1;

如果判断结果为假,就会执行语句块2的内容

*/

多分支:

/*

多分支if语句

格式:

if(条件表达式1){

// 语句块1

}else if(条件表达式2){

// 语句块2

}else if(条件表达式3){

// 语句块3

}

......

else{

// 语句块n

}

数字补0:

复制代码
<html>
<body>
<script>
    //迭代方式实现
    function padding1(num, length) {
        for(var len = (num + "").length; len < length; len = num.length) {
            num = "0" + num;            
        }
        return num;
    }
 
    //递归方式实现
    function padding2(num, length) {
        if((num + "").length >= length) {
            return num;
        }
        return padding2("0" + num, length)
    }
 
    //转为小数
    function padding3(num, length) {
        var decimal = num / Math.pow(10, length);
        //toFixed指定保留几位小数
        decimal = decimal.toFixed(length) + "";
        return decimal.substr(decimal.indexOf(".")+1);
    }
 
    //填充截取法
    function padding4(num, length) {
        //这里用slice和substr均可
        return (Array(length).join("0") + num).slice(-length);
    }
 
    //填充截取法
    function padding5(num, length) {
        var len = (num + "").length;
        var diff = length - len;
        if(diff > 0) {
            return Array(diff).join("0") + num;
        }
        return num;
    }
 
 
</script>
</body>
</html>

switch语句:

witch是多分支语句,用于判断一个表达式的值,然后执行相应的语句。(可以实现多选一)

switch语句执行思路:利用表达式的值,来判断执行哪个语句。(简单的来说就是利用我们的表达式的值和case后面的选你选项值进行匹配

,若匹配上,就执行case语句,若都没匹配上则执行default里面的语句)

while循环:

1.while是最基本的循环,它的结构为:

while(布尔表达式){

//循环内容

}

2.只要布尔表达式 为true,循环就会一直执行下去。

3.我们大多数情况是会让循环停止下来,我们需要一个表达式失效的方式来结束循环。

4.少部分情况需要循环一直执行,比如服务器的请求响应监听等。

5.循环条件一直为true就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环,会影响程序性能或造成程序崩溃

for循环:

for循环的语句格式

1、循环语句的组成

(1)初始化语句:一条或者多条语句,这些语句完成一些初始化操作

(2)判断条件语句:这是一个boolean 表达式,这个表达式能决定是否执行循环体

(3)循环体语句:这个部分是循环体语句,也就是我们要多次做的事情

(4)控制条件语句:这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循 环条件中的变量,使得循环在合适的时候结束

循环嵌套:

1.循环嵌套含义:一个循环体内又包含另一个完整的循环结构称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。

2.分别有3种分别为while循环、do-while循环和for循环并且可以相互嵌套。

数组:

二维数组:

二维数组本质上是以数组作为数组元素的数组,即"数组的数组",类型说明符数组名[常量表达式][常量表达式]。二维数组又称为矩阵,二维数组又称为矩阵,行列数相等的矩阵称为方阵。

递归:

第一要素:明确你这个函数想要干什么

对于递归,我觉得很重要的一个事就是,这个函数的功能是什么,他要完成什么样的一件事,而这个,是完全由你自己来定义的。也就是说,我们先不管函数里面的代码什么,而是要先明白,你这个函数是要用来干什么。

第二要素:寻找递归结束条件

所谓递归,就是会在函数内部代码中,调用这个函数本身,所以,我们必须要找出递归的结束条件,不然的话,会一直调用自己,进入无底洞。也就是说,我们需要找出当参数为啥时,递归结束,之后直接把结果返回,请注意,这个时候我们必须能根据这个参数的值,能够直接知道函数的结果是什么。

第三要素:找出函数的等价关系式

第三要素就是,我们要不断缩小参数的范围,缩小之后,我们可以通过一些辅助的变量或者操作,使原函数的结果不变。

函数:

匿名函数:

匿名函数顾名思义就是没有名字的函数。通过匿名函数可以实现闭包,模拟块级作用域,减少全局变量。执行完匿名函数,存储在内存中相对应的变量会被销毁,从而节省内存。再者,在大型多人开发的项目中,使用块级作用域,会大大降低命名冲突的问题,从而避免产生灾难性的后果

函数表达式:

函数的方式有两种:一种是函数声明,另一种是函数表达式函数声明

值传递、引用传递

  • 值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
  • 引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。

箭头函数:

箭头函数的一些用法

1. 省略包含参数的小括号

如果只有一个参数,那也可以不用括号。只有没有参数,或者多个参数的情况下,才需要使用括号

2. 省略包含函数体的大括号

箭头函数也可以不用大括号,但这样会改变函数的行为。使用大括号就说明包含"函数体",可以在一个函数中包含多条语句,跟常规的函数一样。

  • 省略大括号箭头后面就只能有一行代码;
  • 省略大括号会隐式返回这行代码的值;
  • 省略大括号不能写return。

3. 箭头函数不能使用arguments

如果函数是使用箭头语法定义的,那么传给函数的参数将不能使用 arguments 关键字访问

数组遍历:

概念:数组是指一组数据的集合,每个数据被称为元素 在数组中可以任意存放任意类型的元素!并且是++一组数据储存++ 在单个++变量++中的优雅方式

var arr ={1、2、3、4、56、7};

创建数组

1.利用new创建数组(用的比较少):

方法:1.1. let 数组明 = new Array();

​ 1.2. let arr = new Array();//创建一个新的空间数组

2.利用数组字面量来创建数组:

方法: 2.1. let 数组名 =[];

​ 2.2. 数组名 =['小黑','大黄','瑞奇'];

字符串的常见办法:

字符串的方法有:字符串的比较,字符串的搜索,截取字符串,去除首尾空白字符串,替换字符串,分割字符串,拼接字符串,格式化字符串,字符串的类型转换,转换为char[]字符数组,字符编码,延伸阅读。

一、字符串的比较实际上是想比较字符串的内容是否相同,所以必须使用equals()方法而不是使用==关系运算符,因为==比较的是字符串的内存地址;参数为字符串数组或者字符串都可以,返回值类型为Boolean值。

二、字符串的搜索是根据我们的需求使用不同的方法进行搜索。当使用indexOf()方法时,查找的是当前想要得知的字符的下标,参数可以为字符也可以为字符串,返回值的类型为int 类型;使用last index Of()方法时是从尾部开始搜索,参数和返回值都和indexOf()一致;当使用startswith ()和ends with()方法是用于判断字符串是否以指定字符串开头或者结尾,参数为字符串,返回值为Boolean值;contains()方法用于查找当前字符串中是否存在指定字符串,参数为字符串,返回值类型为Boolean值。

三、截取子字符串:substring ()方法从字符串中截取需要的区间字符串,参数为整数,返回值为字符串。

四、去除首尾空白字符:使用trim()方法,可以移除字符串首尾的空白字符,参数为字符串,返回值类型也为字符串,并且还有isEmpty ()判断字符串是否为空字符串,与参数,返回值为Boolean值。

五、替换字符串:使用replace()方法,参数为字符或者字符串,返回值为字符串。

六、分割字符串:使用split ()方法,参数为字符串,返回值为字符串数组。

七、拼接字符串:使用静态方法join()方法,可以把指定的字符串连接成字符串数组,参数为字符串数组,返回值为字符串。

八、格式化字符串:使用format ()静态方法,可以传入其他占位符,然后生成新的字符串。返回值为字符串。

九、类型转换:可以把任意基本类型或者引用类型转换成字符串,使用的是静态方法value()并且这是一个重载方法。参数可以为整数,小数,字符,字符串,或者Boolean值,返回值为Boolean值,int,double,字符串,

十、转换为char[]字符数组:String 和char[]类型可以相互转换。参数为字符串或者字符,返回值为字符或者字符串。

十一、字符编码:ASCII码,GB2312,Unicode,或者UFT-8。英文的占用一个字节,中文的占用两个字节。

十二、延伸阅读:早期版本的JDK String 总是以char[]存储。

对象:

对象的增删改查:

Math内置对象:

日期内置对象:

修改元素的方法:

修改元素内容:

修改元素属性:

修改元素样式属性:

定时器:

setTimeout() 延迟定时器

setInterval() 循环定时器('间隔器')

1、第一个参数是执行的函数,必须传递,不传没什么意义,会报错

2、第二个参数为定时器执行的毫秒数,可以不传

3、第三个之后的所有参数,都将是第一个参数函数执行的实参

HTML5标准规定了setTimeout()的第二个参数的最小值(最短间隔),不得低于4毫秒,如果低于这个值,就会自动增加,在此之前,老版本的浏览器都将最短间隔设为10毫秒,不同的浏览器实现不同

四、关于定时器的第一个参数

相关推荐
时光追逐者26 分钟前
MongoDB从入门到实战之MongoDB快速入门(附带学习路线图)
数据库·学习·mongodb
一弓虽31 分钟前
SpringBoot 学习
java·spring boot·后端·学习
晓数2 小时前
【硬核干货】JetBrains AI Assistant 干货笔记
人工智能·笔记·jetbrains·ai assistant
我的golang之路果然有问题2 小时前
速成GO访问sql,个人笔记
经验分享·笔记·后端·sql·golang·go·database
genggeng不会代码2 小时前
用于协同显著目标检测的小组协作学习 2021 GCoNet(总结)
学习
lwewan2 小时前
26考研——存储系统(3)
c语言·笔记·考研
搞机小能手2 小时前
六个能够白嫖学习资料的网站
笔记·学习·分类
nongcunqq3 小时前
爬虫练习 js 逆向
笔记·爬虫
汐汐咯3 小时前
终端运行java出现???
笔记
The_cute_cat5 小时前
25.4.22学习总结
学习