【-前端攻城师之JS基础】01JS基础语法

1.js编写位置

  • 可以将js代码编写到标签的onclick属性中,当点击按钮时,代码会执行

  • 可以将代码编写到超链接的href属性中,当点击超链接时,会执行代码

  • 你也点我一下

  • Hello 请点我一下

在这里插入图片描述
但这种方法耦合度高,不推荐使用

  • 可以将js代码编写到script标签中

  • 可以将代码编写到外部js文件中,然后通过script标签引入

    • 写到外部的js文件可以在不同的页面同时引用。也可以利用浏览器的缓存机制
    • script标签一旦引用了外部的js文件,就不能在内部编写代码了,即使写了 浏览器也会忽略。如果需要则可以再创建一个script标签用于编写内部代码

2.字面量和变量

字面量都是一些不可改变的量,可以直接使用,但是我们一般都不会直接使用,而是通过变量描述和保存字面量

声明变量

var a=1;

3.标识符

字母数字下划线美元符号,但不能以数字开头

 不能是JS的关键字和保留字

一般采用驼峰命名法
JS底层保存标识符的原理是unicode编码 也就是utf-8,所以理论上很多字符都能作为标识	符 例如中文汉字

4.数据类型

在ES5中一共有六种数据类型, 五种基本类型一种引用类型

String

  • 在JS中字符串需要用双引号或单引号引起来
  • 双引号不能嵌套,只能单引号和双引号混合使用
  • 如果非要在双引号里面嵌套一个双引号,则需要使用转义字符
  • 在字符串中我们可以使用反斜杠\进行转义
  • (\)表示斜杠 (')表示单引号 (")表示双引号 (\n) (\t)

Number

  • 在JS中所有数值都是Number类型,包括整数和浮点数

  • Number有最大值 Number.MAX_VALUE 大小是1.7976931348623157e+308

如果使用Number的数字超过了最大值,则会返回一个Infinity
Infinity关键字表示正无穷 或-Infinity关键字表示负无穷
使用typeof 检查Infinity也会返回number

  • 可以使用 typeof 运算符来检查数据的类型

    语法:typeof 变量名

    检查字符串时会返回string,检查数值型时会返回number

  • NAN是一个特殊的数字(非法数字) 表示not a number

    检查NAN的类型时,返回的是number

  • Number有最小值 Number.MIN_VALUE 大小是5e-324 大于0的最小 小数

  • 使用JS进行浮点运算时 存在着精度不准确的问题

Null

Null数据类型只有一个null值

null这个值专门用来表示一个空的对象

使用typeof检查一个null值时 得到的是Object

Undefined

Undefined数据类型也只有一个值 那就是undefined

当声明了一个变量而没有赋值时,它的值就是undefined

使用typeof 检查数据类型得到的是Undefined

如果使用一个连声明都没有的对象,浏览器会报错

Boolean

true或false

Object

5.类型强制转换

将其他数据类型转换成String类型

  • 方法一:调用被转换数据toString()方法

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

    但是Null和Undefined数据类型不适用toString()方法

  • 方法二:调用String()函数 将a转换成字符串

    var a=123 a=String(a);

    Null和Undefined数据类型都适用String()函数

    对于Number和Boolean本质上也是调用toString()方法,

    而对于null直接转成“null” undefined直接转成“undefined”

使用Boolean()函数 将其他类型转换成boolean

  • ​ 数字转Boolean 除了0和NAN其他都是true

  • ​ 字符串转Boolean除了空串其他都是true

  • ​ null和undefined都是false

  • 对象转都是true

    Boolean()函数的原理是进行两次非运算

将字符串型数字转换成数字,只需要在字符串前添加加号

6.运算符

1.逻辑运算符

&& || ! (与或非)

对于非布尔值的逻辑运算,会先将其转换为布尔值,然后再运算,最后返回原值

  • 与运算 :如果第一个值为true,则返回第二个原值

    ​ 如果第一个值为false,则直接返回第一个原值

  • 或运算:如果第一个值为true,则直接返回第一个值

    ​ 如果第一个值为false,则直接返回第二个值

2.关系运算符

【数值之间的比较,很简单】

【数值和非数值的比较,会进行强制转换,先将非数值转换成数值,再进行比较】

字符串和字符串比较,不会先转换成数值,而是比较字符串的unicode编码,比较字符编码时,一位一位比较,逐位比较

两个字符串型数字进行比较时,可能会得到不可预期的结果,因此我们不介意这么做,而应该用类型转换,将其中一个字符串型数字转换成数字

【如果两个不同类型的值进行相等比较,则先会转换成相同类型,再进行比较,!=运算符原理类似】

【NAN不和任何值相等,可以通过isNaN()函数来判断一个值是否是NaN】

【===全等运算符,不会自动做类型转换,“123”===123返回false】

【!==不全等运算符,不会自动做类型转换,“123”!==123返回true】

3.条件运算符

条件 ? 语句1 :语句2

条件运算符在执行时,先对条件表达式进行求值,如果为true则执行返回第一个语句的结果,如果为false,则执行返回第二个语句的结果

返回a,b之间的最大值:a>b ? a :b

如果条件表达式的值不是布尔值,则会转换成布尔值

4.运算符优先级

逻辑运算符 not and or 优先级依次降低

如果不确定优先级,可以使用括号先算该变优先级

7.unicode编码在网页中的使用

在js中使用: 在字符串中使用转义字符输入unicode编码,“\u+16进制数”

在html中使用unicode编码: &加#10进制数加 ;分号

8.代码块

{

语句1;

语句2;

}

一个花括号中的语句我们称为代码块,在代码的最后面不需要写分号,在ES5中花括号除了分组,没有其他任何的功能,因此代码块内部的内容,在外部是完全可见的

9.选择和循环结构

  • if else if …( 需要多少个else if )就写多少个 else

    • 当该语句执行时,会从上到下依次执行,如果值为true就执行当前语句,如果为false就继续执行下一条语句,如果都不成立,就执行else的语句

    • 该语句中只有一个代码块会执行,一旦这个代码块执行了,就直接结束if

  • prompt()函数可以弹出一个提示框,该提示框带有文本输入框

    函数的参数会作为提示框的提示内容展示给用户

    用户在文本输入框输入的内容会作为函数的返回值,可以定义一个变量接受此返回值

  • for循环中的三个部分可以省略,也可以写在外部

  • 如果for循环中不写任何的表达式,只写两个分号,就是个死循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值