js 的编写位置
- 可以编写到指定属性中
<button onclick="alet('hello');">我是按钮</button>
<a href="javascript:alert('aaa');">超链接</a>
- 编写在 script 标签中
<script type="text/javascript">
<!-- 编写js代码 -->
</script>
- 代码编写到外部 js 文件中,通过标签引入
script 标签一旦引入外部文件,就不能编写代码了,即使编写了浏览器也会忽略,如果需要则可以创建一个新的 script 标签用于编写内部代码
<script type="text/javascript" src="文件路径"></script>
输出语句
alert("输出的内容");
该语句会在浏览器窗口弹出一个警告框
document.write("要输出的内容");
该内容会被写到 body 标签中,并在页面中显示
console.log("要输出的内容");
该内容会被写到控制台中
js 基本语法
- js 严格区分大小写
- js 中每一条语句以分号结尾
- js 会自动噢乖忽略多个空格和换行
单行注释
//注释内容
多行注释
/*
注释内容
*/
字面量和变量
字面量
- 字面量实际上就是一些固定的值,比如 123tru false null na “hello”
- 字面量都是不可改变的
- 字面量使用不方便,js 很少直接使用字面量
变量
- 变量可以用来保存字面量,并可以保存忍一点字面量
- 一般通过变量来使用字面量,也可通过变量对字面量进行一个描述
声明变量
- 使用 var 关键字声明变量
var a;
为变量赋值
a=1
声明和赋值同时进行
var a=456
标识符
js 中,所有自主命名的内容,都可以认为是一个标识符,标识符应该遵守标识符的规范
比如:变量名、函数名、属性名
规范
- 标识符可有含有字母、数字、_、$
- 标识符不能以数字开头
- 标识符不能是 js 中的关键字和保留字
- 标识符一般采用驼峰命名法:xxxYyyZzz
六种数据类型
js 共分为六种数据类型;5 个基本数据类型+object(引用数据类型)
String 字符串
Number 数值
Boolean 布尔值
Null 空值
Undefined 未定义
Object 对象
typeof 运算符检查数据类型
console.log(typeof a);
检查字符串,返回 string’
检查数值,返回 number
- String 字符串
- js 字符串中使用引号,单引和双引都行
在字符床中\作为转义字符
\'-->'
\"-->"
\n-->换行
\t-->制表符
\\-->\
- Number 数值
- js 中所有的整数和浮点数都是 number 类型
- 最大能表示的数:Number.MAX_VALUE= 1.7976931348623157e+308
- infinity 正无穷
- NaN 非法数字(not a number)
type of NaN,和 inifnity 都是返回 number
其它进制的数字表示:
ob 开头表示二进制,但是不是所有浏览器都支持
o 开头表示八进制
ox 开头表示十六进制
-
Boolean 布尔值
布尔值主要用来进行逻辑判断,布尔值只有两个
true 逻辑的真
false 逻辑的假 -
Null 空值
空值专门用来表示为空的对象,Null 类型的值只有一个 null
使用 type of 检查 Null 类型的值会返回”object“ -
Undefined 为定义
如果一个变量但是没有为变量赋值,此时的变量的值就是 undefined
该类型的值只有一个 undefined
使用 type of 检查 Undefined 类型的值时,会返回 undefined -
引用数据类型
object 对象
类型转换
类型转换就是指将其他的数据类型,转换为 String Number 或 Boolean
转换为 String
方式一(强制类型转换)
调用被转换数据的 toString()方法
var a=123;
a=a.toString();
注意:这个方法不适用 null 和 undefined
由于这两个类型的数据中没有方法,所以调用 toString()时会报错
方法二(强制类型转换)
调用 Strign()函数
var a=123;
a= String(a);
对于 Number Boolean String 都会调用它们的 toString()方法将其转化为字符串,对于 null 值,直接转换为字符串" null"。对于 undefined 直接转换为字符串" undefined"
方式三(隐式的类型转换)
为任意的数据类型+" "
var a=true;
a=a+"";
转换为 number
方式一(强制类型转换)
调用 number()函数
var s="123";
s=Number(s);
转换的情况:
- 字符串>数字
字符串是合法的数字,则直接转换为对应的数字
如果字符串是非法的数字,这转换为 NaN
如果是空串或者是纯空格的字符串,则转换为 0 - 布尔值>数字
true 转换为 1
false 转换为 0 - 空值>数字
null 转换为 0 - 未定义>数字
undefined 转换为 NaN
方式二(强制类型转换)
调用 parseInt()或 parseFloat()
这两个函数专门用来将一个字符串转换为数字的
如果是对非 String 使用 parselnt()或 parseFloat(),它会先将其转换为 String 然后在操作 parselnt()
var a="123.456";
a=parseInt(a);//123
方式三(隐式的类型转换):
使用一元的+来进行隐式的类型转换
var a="123";
a= +a;
转换为布尔值
方式一(强制类型转换)
使用 Boolean()函数
var s="false";
s=Boolean(s);//true
转换情况
字符串>布尔
除了空格都是 true
数值>布尔
除了 0 和 NaN 其余都是 true
null、undefined>布尔
都是 false
对象>布尔
都是 true
方式而(隐式类型转换):
为任意的数据类型做两次非运算,即可将其转换为布尔值
var a="hello";
a= !!a;
基本语法
typeof 运算符
用来检查一个变量的数据类型
语法:typeof 变量
会返回一个用于描述类型的字符串作为结果 ### 算术运算符
- + 对两个值进行加法运算并返回结果
- - 对两个值进行减法运算并返回结果
- *、 /、 %
逻辑运算符
- !非
- && 与
- ||或
赋值运算符
a=5;
a+=1;
a-=1;
a*=2;
a/=2;
a %=5;
关系运算符
关系运算符用来比较两个值之间的大小关系
= < <=
如果关系成立返回 true,关系不成立则返回 false
如果比较的两个值是非数值,则会将转换为 Number 然后再比较
如果比较的两个值都是字符串,此时会比较字符串的 Unicode 编码,而不会转换为 Number
相等运算符
- == :判断两个值是否相等,相等返回 true,不等返回 false
- !=: 不等返回 ture,相等返回 false
- ===:全等,判断两个值是否全等,和相等类似,不过不会自动进行性类型转换,如果两个类型不同,直接 false
条件语句
if 语句
//语法一
if(条件表达式){
语句
}
//语法二
if(){
语句
}else{
语句
}
//语法三
if(条件表达式){
语句
}else if(条件表达式){
语句
}else if(条件表达式){
语句
}else{
语句
}
switch 语句
switch(条件表达式){
case 表达式:
语句……
break;
case 表达式:
语句……
break;
case 表达式:
语句……
break;
}
执行流程:
依次将 case 后的表达式的值与 swith 后表达式进行全等比较,如果比较结果为 false,则继续向下比较,如果比较结果为 true,则从当前 case 处向下执行代码
如果所有的 case 判断结果为 false,则从 default 处来是执行代码
循环语句
while 循环
while(条件表达式){
语句……
}
执行流程:
while语句在执行时,先会对条件表达式进行求职判断,如果结果为false,则终止循环
如果判断结果为true,则执行循环体
循环体执行完毕,继续对条件表达式进行求值判断
do while 循环
do{
语句……
}while(条件表达式)
for循环
for(初始化表达式;条件表达式;更新表达式){
语句……
}