JS学习第一次

基础

JS书写位置

我们可以将js代码编写到标签的onclick属性中

下面我们使用js来编写一个点击事件
这里放关键代码

<body>
		<button onclick="alert('已点击');">点我一下</button>
</body>

下面我们来看看效果
效果
只有当我们点击按钮时才会触发js代码,这是由于我们的onclick属性决定的。

下面我们将js代码写入超链接的herf中
如此,点击超链接时会执行js代码

<body>
    <a href="javascript:alert('已点击');">点击</a>
</body>

下面我们看看效果
效果

上面的种种,虽然js可以写在标签的属性内,但是题目属于结构与行为耦合,不方便维护,所以这里不推荐使用。
那么我们写在哪里呢?
开始时我们将js写在script标签内的。同样我们可以将js写在一个单独的文件中,引入来使用
由script标签引入
和css引入方式类似,我们在head内使用

<script src=""></script>

这样就实现了js的引入,这里就不过多说明了。
将JS写入到外部文件夹中可以在不同页面中同时引用,也可以利用到浏览器的缓存机制,这是很推荐的使用方式
Tips:script标签一旦用于引入外部文件了,就不能在编写代码了,即使编写了,浏览器也会忽略。如果需要那直接可以创建一个新的script标签
例如

<script src=""></script>
<script>***</script>

第一行是引入外部js文件,所以我们另起一个来运行

注释规范

JS注释

/*
~~
*/

这是多行注释,和CSS差不多,注释内容不会运行,但是可以在源码中查看

//单行注释

这是单行注释,只对其后的有作用
1.JS中严格区分大小写
2.JS中每一条语句以分号(;)结尾
但是如果我们不加分号,浏览器会自动添加,但是会消耗一些系统资源,而且有时候浏览器会错加分号,所以开发中分号必须写
*3.JS中会忽略多个空格和换行,所以我们可以利用空格和换行对代码进行格式化

数据类型

数据类型值得就是字面量的类型
在JS中一共有六种数据类型
String字符串
Number数值
Boolean布尔值
Null空值
Undefined未定义
Object对象
其中String Number Boolean Null Undefined属于基本数据类型,而Object属于引用数据类型

String字符串

在JS中字符串要引号引起来
使用双引号或单引号都可以,但是不能混着用
引号不能嵌套:双引号不能放双引号,单引号不能放单引号

var str = "hello";

在字符串中我们可以使用\作为转义字符,当表示一些特殊符号时可以使用\转义

var str = "我说:\"今天天气真不错!\"";
\"表示"
\'表示'
\n表示换行
\t表示制表符
\\表示\

Number

在JS中所有的数值都是Number类型,包括整数和浮点数(小数)
其中

var a = "123";
var b = 123;

上面两个不是同一个东西,a为字符串123,b为数字。
那么我们如何检查这类现象呢?
我们使用typeof检查
语法

typeof 变量
typeof a

但是这样是无法输出结果的,所以我们都使用控制台输出

console.log(typeof a);

这样我们就可以在控制台看到类型。

JS中我们可以表示的数字的最大值为

Number.MAX_VALUE

我们来看看值为多少
值
上面为我们JS的最大值输出结果
如果我们使用最大值平方,那么他会输出Infinity表示无穷
使用typeof检查Infinity同样会返回Number
如果我们计算如下

a = "abc" * "bcd";
console.log(a);

他会输出什么呢?
结果为NAN
NAN是一个特殊的数字,表示Not A Number不是一个数字
如果a=NAN那么检查会输出什么呢
他也会输出number。
既然有最大值,那么就会有最小值,这个最小值不是负的最大值而是另外一种
我们令a = Number.MIN_VALUE;
这里输出结果为5e-324他依然为正数,所以这不是一般我们所理解的最小值,而是零以上的最小值。

布尔值

布尔值只有两个,主要用来做逻辑判断
true表示真
false表示假
使用typeof检查布尔值还会返回boolean

Null和Undefined

Null类型的值只有一个,就是null
null这个值专门用来表示一个为空的对象
使用typeof检查一个null值会返回object

Undefined类型值只有一个,就是undefined
当声明一个变量,但是不给变量赋值时,它的值就是undefined
使用typeof检查一个undefined时也会返回一个undefined

强制类型转换

String

强制类型转换:将一个数据类型强制转换为其他的数据类型,类型转换主要指,将其他的数据类型转换为String、Number、Boolean
那么我们怎么将其他数据类型转为String呢?
法一:
调用被转换数据类型的toString()方法,这个方法不会影响到原变量
举例

var a = 123;
var b = a.toString();

console.log(typeof b);
console.log(b);

输出结果如图
结果
这里我们可以看到数据类型成功转换,
那么我i吗如果不想另创新值,我们可以直接使用a = a.toString();来转换,效果是一样的
Tips:null和undefined是没有toString()方法,如果调用则会报错
法二:
调用String()函数并将被转换的数据作为参数传递给函数。

a = 123
a = String(a);

输出结果是和法一相同的
但是这种方法可使null和undefined转换为字符串

Number

调用Number()函数将值转换为Number类型
如果我们被转换的为字母之类的呢,转换后输出值为NaN
str–>数字
如果是纯数字的字符串,则直接将其转换为数字
如果字符串内含有非数字的内容,则转为NaN
如果字符串是一个空串或者是一个全是空格字符则转换为0
布尔–>数字
true转为1
false转为0
null–>数字 0
undefined–>数字NaN
法二
这种专门对付字符串
parseInt()把一个字符串转换为一个整数
parseFloat()把一个字符串转换为一个浮点数
parseInt()可以将一个字符串中有效整数内容取出来
同样parseFloat()他获得有效小数例如123.236.21则会筛出123.236会忽略后面.21因为他不是有效小数

其他进制的数字

如果需要16进制数字,则需以0x开头
eg:a = 0x10;则输出结果为16
如果a =0xff则输出255
如果需要以8进制数字则以0开头
如果表示2进制数字则以0b开头,但是不是所有的浏览器都是支持的
像070之类的字符串,有些浏览器会当成8进制数转换有些会以10进制转换那么我们怎么解决呢

a = "070"
a = parseInt(a,10); //10表示10进制

可以在parseInt()中传递一个第二参数,来指定数字的进制

布尔值

将其他数据类型转换为Boolean使用Boolean()函数
数字

var a=123
a = Boolean(a);
console.log(a);

输出结果为true,而a赋值为-123输出还是true;
输入Infinity输出依然为true而赋值为0则输出false;
综上我们知道非零为true及除了0和NaN其余都是true
字符串
除了空串其余都为true
null和undefined都会转换为false

算数运算符

运算符也叫操作符,通过运算符我们可以对一个或多个值进行运算,并获取运算结果。
例如:typeof就是运算符,可以获得一个值的类型,他会将该值的类型以字符串的形式返回。
算数运算符:

+		可以将两个值进行加法运算并将结果返回,如果对两个字符串进行加法运算,则会做拼串操作,任何值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串操作
-
*
/
%取余

由上面加法的转换字符串操作,我们可以利用,只需要为任意的数据类型+一个""即可将其转换为字符串,这是一种隐式类型转换
Tips:除了加法会将其余数据类型转换为字符串,其余都是转换为数字类型

一元运算符

一元运算符只需要一个操作数,例如typeof()、+正号(不会对数字产生任何影响)、-负号(可以对数字进行负号的取反),对于非数字类型的值他会先转换为数字类型然后再计算,可以对一个其他类型数据使用+,来将其转换为number,他的原理和Number()函数是一样的

自增和自减

自增为++
通过自增可以使变量在自身基础上加1
对于一个变量自增后,原变量的值会立即自增1
无论是a++还是++a都会立即使原变量值自增1
不同的是a++和++a的值不同
a++的值等于原变量的值(自增前的值)
++a的值等于原变量的新值(自增后的值)
自减为–
和自增几乎一样这里就不赘述了

逻辑运算符

!非
&&与
||或


如果计算

a =!a;

那么输出结果为false
所谓非运算符就是对一个布尔值进行取反操作
true变false,false变true
如果对一个布尔值去两次反,它不会变化
如果对非布尔值运算,则会将其转换为布尔值然后取反。
所以我们可以为任意数据类型取两次反,来将其转换为布尔值原理和Boolean()一样
&&
&&可以对符号两侧值进行运算并返回结果
运算规则:
两个值中只要由一个值为false就返回false
只有两个值都为true才返回true
JS中的与属于短路与,如果第一个值为false则不会看第二个值
||
||可以对符号两侧的值进行或运算并返回结果
运算规则:
两个值中只要有一个true就返回true
如果两个值都为false才返回false
JS中的或属于短路的或
如果第一个值为true则不会检查第二个值

非布尔值的与或运算

&&和||对非布尔值运算
会先将其转换为布尔值,然后运算
&&
如果第一个值为true则必然返回第二个值
如果第一个值为false则直接返回第一个值
||
如果第一个值为true则直接返回第一个值
如果第一个值为false则返回第二个值

赋值运算符

=可以将符号右侧的值赋值给左侧的变量
+=
a +=5等价于 a = a + 5
-=
a-=5等价于a = a - 5
*=
a*=5等价于a=a*5
/=
a/=5等价于a=a/5
%=
a%=5等价于a=a%5

关系运算符

通过关系运算符可以比较两个值之间的大小关系
如果关系成立他会返回true,如果关系不成立则额返回false

>
判断符号左侧值是否大于右侧值
如果关系成立他会返回true,如果关系不成立则额返回false
>=
判断符号左侧的值是否大于或等于右侧的值
<
<=

注意的是
比较两个字符串时,比较的时字符串的字符编码,比较字符编码时时一位一位进行比较的
如果两位一样,则比较下一位,所以借用他来对英文排序。
比较中文是没有意义的
如果比较的两个字符串型数字,可能得到不可预期的结果
Tips:比较两个字符串型数字时,一定要转型

Unicode编码

在字符串中使用转义字符输入Unicode编码
\u四位编码

console.log("\u2620");

在网页中使用Unicode编码
&#编码;这里使用的编码需要10进制

相等运算符

相等运算符用来比较两个值是否相等
如果相等则会返回true否则返回false

==
相等运算
当使用==来比较两个值时,如果值类型不同,则会自动进行类型转换,将其转换为相同的类型然后再比较
不相等
不相等用来判断两个值是否不相等,如果不相等返回true,否则返回false
使用!=来做不相等运算
不相等也会对变量进行自动类型转换,如果转换后相等它也会返回false
===
全等
用来判断两个值是否全等,他和相等类似,不同的时它不会做自动类型转换
如果两个值类型不同直接返回false
!==
不全等
用来判断两个值是否不全等,和不等类似,不同的时它不会做自动类型转换
如果两个值类型不同直接返回true

undefined衍生自null所以这两个值做相等判断时,会返回true
NaN不和任何值相等,包括他自己
可以通过isNaN()来判断一个值是否为NaN

条件运算符(三元运算符)

语法:
条件表达式?语句1:语句2;
执行流程:
条件运算符在执行时,首先对条件表达式进行求值
如果该值为true则执行语句1并返回结果
如果该值为false则执行语句2并返回结果
如果条件表达式求值结果是一个非布尔值,会将其转换为布尔值然后运算

流程控制语句

流程控制语句
JS中的程序是从上到下一行一行执行的,通过流程控制语句可以控制程序执行的流程,使得程序可以根据一定的条件来选择执行。
语句分类
1.条件判断语句
2.条件分支语句
3.循环语句

1.条件判断语句
使用条件判断语句可以在执行某个语句前进行判断,如果条件成立才会执行语句,条件不成立则不执行。
if语句
语法一:

if(条件表达式)
	语句

if语句在执行时,会先对条件表达式进行求值判断,如果条件表达式的值为true则执行if后语句。
如果条件表达式的值为false则不会执行if后语句。
if语句只能控制紧随其后的那个语句,如果希望if语句控制多条语句,可以将这些语句统一放到代码块中。
if语句后的代码块不是必须的,但是在开发中是尽量保证要有的。
语法二:

if(条件表达式)
{
	语句
}
else
{
	语句
}

if…else…语句
当该语句执行时,会先对if后条件表达式进行求值判断,如果条件表达式的值为true则执行if后语句。
如果条件表达式的值为false则执行else后语句。
语法三:

if(条件表达式)
{
	语句
}
else if(条件表达式)
{
	语句
}
else if(条件表达式)
{
	语句
}
else
{
	语句
}

if…else if…else
当该语句执行时,会从上至下依次对条件表达式进行求值判断,如果为true则执行当前语句,如果为false则继续向下判断。

条件分支语句

条件分支语句也叫switch语句
语法

switch(条件表达式)
{
case 表达式:
	语句
	break;
case 表达式:
	语句
	break;
default 表达式:
	语句
	break;
}

执行流程:
switch…case…语句
在执行时会一次将case后的表达式的值和switch后的条件表达式的值进行全等比较,如果为true则从当前case开始执行代码,如果为false则继续向下比较。
如果所有比较结果都为false则只执行default后语句。

循环

循环语句:
通过循环语句可以反复执行一段代码多次。
while循环
语法

while(条件表达式)
{
	语句
}

执行流程:
先对条件表达式进行求值判断,如果为true则执行循环体,循环体执行完毕后,继续对表达式判断,如果为true则继续执行循环体,以此类推。
如果为false则终止循环。
Tips:
将条件表达式写死为true的循环称为死循环,该循环不会停止,除非浏览器关闭,死循环在开发中慎用,可使用break来终止循环。

创建一个循环,往往需要三个步骤:
1.创初始化一个变量
2.在循环中设置一个条件表达式
3.定义一个更新表达式,每次更新可初始化变量

do…while循环
语法

do
{
	语句
}
while(条件表达式)

执行流程:
do…while语句在执行时,会先执行循环体,循环体执行完毕后在对while后条件表达式进行判断,如果结果为true则继续执行循环体,执行完毕继续判断,以此类推。
如果为false则终止循环。

实际上上面两个语句功能类似,不同的是while是先判断再执行,而do…while会执行后判断。
do…while会保证循环体至少执行一次。

for循环

for语句:也是一个循环语句,称为for循环
在for循环中,为我们提供专门的位置放三个表达式
1.初始化表达式
2.条件表达式
3.更新表达式
语法

for(初始化表达式;条件表达式;更新表达式)
{
	语句
}

流程:
①执行初始化表达式,初始化变量
②执行条件表达式,判断是否执行循环
如果为true则执行循环③
如果为false则终止循环
③执行更新表达式,更新表达式执行完毕继续重复②

for循环中三个部分都可以省略,也可以写在外部
如果在for循环中不写任何表达式,只写两个;此时循环是一个死循环会一直循环下去,慎用。

break和continue

break
break关键字可以用来退出switch或循环语句
不能再if语句中使用break和continue。
可以为循环语句传教一个label来标识当前循环
label:循环语句
使用break语句时可以再break后跟着一个label,这样break将会结束指定的循环,而不是最近的。
continue
continue关键字可以用来跳过当次循环,同样continue也是默认只会对离他最近的循环起作用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 字符串是一种常用的数据类型,它由一系列字符组成,可以用来表示文本。JavaScript提供了一些内置方法来操作字符串,包括查找字符串、替换字符串、拆分字符串等等。当然,我很乐意帮助你了解 JavaScript 中常用的字符串方法。以下是一些常用的方法: 1. length:返回字符串的长度。 2. indexOf:返回字符串中指定字符或子串的第一次出现的位置。如果没有找到该字符或子串,则返回 -1。 3. lastIndexOf:返回字符串中指定字符或子串最后一次出现的位置。如果没有找到该字符或子串,则返回 -1。 4. charAt:返回指定位置的字符。位置从 0 开始。 5. slice:返回从指定位置开始到指定位置结束的子串。可以接受一个或两个参数。 6. substring:与 slice 方法\u4e00\u6837\uff0c\u4e5f\u53ef\u4ee5\u8fd4\u56de\u4ece\u6307\u5b9a\u4f4d\u7f6e\u5f00\u59cb\u5230\u6307\u5b9a\u4f4d\u7f6e\u7ed3\u675f\u7684\u5b50\u4e32\uff0c\u4f46\u4e0d\u80fd\u63a5\u53d7\u8fd1\u4e24\u4e2a\u53c2\u6570\uff0c\u7a0b\u5e8f\u5458\u5fc5\u987b\u81ea\u884c\u5904\u7406\u3002\n\n7. substr\uff1a\u8fd4\u56de\u6307\u5b9a\u4f4d\u7f6e\u5f00\u59cb\uff0c\u957f\u5ea6\u4e3a\u6307\u5b9a\u6570\u91cf\u7684\u5b57\u7b26\u4e32\u3002\n\n8. replace\uff1a\u4f7f\u7528\u4e00\u4e2a\u5b57\u7b26\u4e32\u66ff\u6362\u53d8\u91cf\u4e2d\u7684\u5176\u4ed6\u5b57\u7b26\u4e32\u3002\n\n9. split\uff1a\u4f7f\u7528\u4e00\u4e2a\u5b57\u7b26\u4e32\u5206\u5272\u539f\u59cb\u5b57\u7b26\u4e32\uff0c\u5e76\u8fd4\u56de\u5206\u5272\u540e\u7684\u5b57\u7b26\u4e32\u6570\u7ec4\u3002\n\n10. toLowerCase\uff1a\u5c06\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3a\u5c0f\u5199\u5b57\u7b26\u4e32\u3002\n\n11. toUpperCase\uff1a\u5c06\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3a\u5927\u5199\u5b57\u7b26\u4e32\u3002\n\n\u4e0a\u8ff0\u65b9\u6cd5\u4e3a JavaScript \u4e2d\u5e38\u7528\u7684\u5b57\u7b26\u4e32\u65b9\u6cd5\uff0c\u53ef\u4ee5\u5bf9\u5b66\u4e60 JavaScript \u5e38\u7528\u7684\u5b57\u7b26\u4e32\u65b9\u6cd5\u8fdb\u884c\u7b80\u5355\u7684\u4e8b\u60c5\u4e2d\u5b9e\u8df5\u3002 ### 回答2: JavaScript中的字符串是由一系列字符组成的文本。在JavaScript中,字符串是一种基本的数据类型,并且在Web开发中使用得非常频繁。字符串的常用方法特别重要,因为它们使得对字符串进行各种操作变得非常简单。下面是JavaScript学习手册九:字符串的常用方法。 1. charAt() 该方法返回字符串中指定的位置的字符。 2. charCodeAt() 该方法返回字符串中指定字符的Unicode编码。 3. concat() 该方法用于将两个或多个字符串合并为一个新的字符串。 4. indexOf() 该方法用于查找字符串中的某个字符或子字符串,如果找到就返回该字符或子字符串的位置,否则返回-1。 5. lastIndexOf() 该方法与indexOf()方法类似,但是它是从字符串的末尾开始查找。 6. match() 该方法用于在字符串中匹配一个正则表达式,并返回匹配的结果。 7. replace() 该方法用于在字符串中匹配一个正则表达式,并用指定的字符串替换匹配的字符串。 8. search() 该方法用于在字符串中查找指定的字符或子字符串,并返回它们的位置。 9. slice() 该方法用于截取字符串中的一部分,并返回该部分的新字符串。 10. split() 该方法用于将一个字符串分割成一个子字符串数组,并返回该数组。 11. substr() 该方法用于截取字符串中从指定位置开始的指定长度的字符串,并返回该部分的新字符串。 12. substring() 该方法与substr()方法类似,但是它是从指定的两个索引之间截取字符串。 13. toLowerCase() 该方法用于将字符串中的所有字符转换为小写字母。 14. toUpperCase() 该方法用于将字符串中的所有字符转换为大写字母。 以上就是JavaScript中字符串的常用方法。熟练掌握这些方法可以使得你对字符串的操作变得更加便捷和高效。 ### 回答3: JavaScript 中的字符串是一组文本字符,是操作文本数据的基本方式。在 JavaScript 字符串中,有很多方法可用于处理、转换和操作字符串。以下是 JavaScript 字符串中常用方法的介绍: 1. 字符串长度: 使用字符串的 length 属性可以获取字符串的长度,如: "hello world".length。 2. 字符串索引: 字符串中的每个字符都可以通过其索引访问。使用 charAt(index) 方法可以返回指定位置的字符,如:"hello".charAt(1)。 3. 字符串连接: 可以通过 + 运算符将两个字符串连接起来,并返回一个新的字符串。如:"hello" + "world"。 4. 字符串查找: 使用 indexOf(str) 和 lastIndexOf(str) 方法可以查找字符串中指定子字符串的位置。其中,indexOf() 方法从字符串的开头开始查找,lastIndexOf() 方法从结尾开始查找,如:"hello world".indexOf("l")。 5. 字符串替换: 使用 replace(subStr, replaceStr) 方法可以将字符串中的子字符串替换为指定字符串,并返回一个新的字符串。如:"hello".replace("h", "H")。 6. 字符串转换: 使用 toUpperCase() 和 toLowerCase() 方法可以将字符串转换为大写或小写字母形式,如:"HeLLo".toUpperCase()。 7. 字符串分割: 使用 split(separator) 方法可以将字符串分割成一个数组,其中 separator 是分割符,如:"hello world".split(" ")。 8. 字符串裁剪: 使用 slice(start, end) 方法可以截取字符串的一部分,并返回一个新的字符串,其中 start 是开始索引,end 是结束索引,如:"hello world".slice(0, 5)。 以上是 JavaScript 字符串中常用的方法。熟练掌握这些方法,能够更加灵活、高效地操作字符串,在开发中发挥更大的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值