书写方式
1.内嵌式
使用的是Script标签,该标签可以写在html文档中的任何位置
【强调】一般情况下,我们应该将其写在head标签中。
2.外链式
通过script标签的src属性,引入外部的js文件。
3.常见错误写法:
<script src="js/demo.js">
alert("看看能不能出现");
</script>
注: 不要在同一个Script标签中同时使用内嵌式与外链式。
如果设置了src属性,Script标签中的内容就会被忽略。
4.外链式的优点
1.提高代码的复用性。
2.提高网页的加载速度
5.注释
//单行注释 ctrl+/
/*
多行注释
*/
输出
1. alert 翻译:警报
用途:弹出警告框。
格式:
alert('弹出内容');
2.console.log(); 在控制台输出
console.log("春田花花幼稚园");
3.document.write(“输出内容”);在页面中输出
document.write("春田花花幼稚园")
也可以为其加上标签:
document.write("<em>春田花花幼稚园</em>")
body中会出现相应的标签
语法
- 语句:执行行为的语法结构和命令。
通俗的说:语句是为了完成某个目的而进行的操作。
语句以;结尾,一个分号就表示一个语句结束了。
可以将多个语句写在同一行,但是每个语句独占一行可以调高代码的可读性。 - 分号:当存在换行时,分号可以省略,但是不推荐这样做,因为若js文件被压缩,会出现错误。
变量
变量的定义和赋值:
1.定义(声明)。 使用var关键字来定义变量。 var 后面跟一个空格,然后是变量名。
2.赋值。 = 等于赋值 将=右边的值赋给左边。
变量要先定义,再使用
1.声明变量,没有赋值,直接使用,不会报错,但是结果是undefined(未定义)。
2.没有声明变量,直接使用,报错。
变量声明提升,执行顺序:
var a;
var b;
alert(a);
标识符:
用户自定义的名字叫做标识符。变量名是标识符。函数名也是标识符。
1.标识符可以由任一的大小写字母,数字,下划线_和美元符($)组成,但是不能以数字开头.
2.标识符区分大小写。强烈不建议使用同一个单词的大小写来区分两个变量。
3.见名知意
4.不要使用js的保留字与关键字
关键字:js具有一些功能性的词语。
abstract、enum、int、short、boolean、export、interface、static、byte、extends、long、super、char、final、native、synchronized、class、float、package、throws、const、goto、private 、transient、debugger、implements、protected 、volatile、double、import、public。
保留字:目前没有特殊功能,但是js保留下来可能以后使用。
abstract、 arguments、 boolean、 break byte、
case、 catch、 char class*、 const、
continue、 debugger、 default、 delete、 do、
double、 else、 enum*、 eval、 export*、
extends* 、false、 final 、finally、 float、
for、 function、goto if、 implements、
import*、 in、 instanceof、 int、 interface、
let、 long、 native、 new、 null、
package、 private、 protected、 public、 return、
short、 static、 super*、 switch、 synchronized、
this、 throw、 throws、 transient、 true、
try、 typeof、 var、 void、 volatile、
while、 with、 yield、
可以将声明与赋值写在一起
var userName = "春田花花幼稚园";
//var userName;
// userName = "春田花花幼稚园";
一个var可以声明多个变量,变量名之间使用逗号隔开。
var a,b,c;
a="a";
b="b";
alert(b);
数据类型
八大数据类型:
- 数值 number 整数和小数(浮点数)
- 字符串string “字符串”
- 布尔值boolean ture flase
- undefined 未定义
- null 空值
- object 对象
- array 数组
- function 函数
原始类型(简单数据类型):
- number
- string
- boolean
引用数据类型
- object
- array
- function
特殊值 - undefined
- null
number 类型
number
- 整数和浮点数(有理数)(无限不循环小数:无理数)
- 浮点数不是精确的值,涉及小数的计算和比较时一定要小心。
- js内部,所有的数字都是以64位的浮点数形式存储的。
数值范围:
±9007199254740991
数值的表示方式
科学计数法:12300 123*10的二次方 123e2
有两种情况,js会自动将数值转换为科学计数法
- 小数点的数字多于21位。
- 小数点后紧跟5个以上的零。
数值的进制
console.log/alert中,会将其他进制的数字默认转为10进制。
二进制 0 1
十进制 0-9
八进制 0-7 有前缀为0o或0O的数值。
十六进制 0-9 a-f 前缀为0x或0X的数值
15 * 16 + 15 * 1
特殊数值
NaN:not a number 这不是一个数字。主要出现在字符串转数字出错的场合。
NaN与任何数(包括自身)的运算,得到的都是NaN。
Infinity 表示:无穷
**+Infinity:**无穷大
-Infinity :无穷小。
string类型
字符串:
字符串是由零个或多个排列在一起的字符,放在单引号或双引号之中。
‘a’
单引号与双引号可以嵌套使用。
如果想要在双引号中使用双引号,可以再嵌套的双引号前面加反斜杠 /
错误写法
var str = "1 2
3";
转义:
一些特殊字符需要转义才能在js中使用。
转义字符为:
\\ n 表示换行
\\ 表示
\\ 制表符
\x (ASCII码)
操作字符串:
str.length 长度
var str = 'helloworld'
console.log(str.length);
str[下标] 获取单个字符。
var str = 'helloworld'
console.log(str[4]);
str.toUpperCase() 将英文字符专为大写。
var str = 'helloworld'
console.log(str.toUpperCase());
toLowerCase()将英文字符专为小写。
var str = 'HELLOWORLD'
console.log(str.toLowerCase());
indexOf:(“参数”)返回字符串中指定字符的位置(下标)。
var str = 'HELLOWORLD'
console.log(str.indexOf('W'));
substring():返回指定区域的字符串
var str = 'HELLOWORLD'
console.log(str.substring(5));
其他类型
特殊值:
- null 空值
- undefined 未定义 只声明未赋值时。
布尔值:
- true false
- 只要用于流程控制语句。
类型检测: typeof
类型转换。
强制类型转换
1. Number()数值转换:
各个属性转换结果为:
console.log( Number(true))
console.log( Number(false))
console.log( Number(null))
console.log( Number(undefined))
console.log( Number("aaa"))
console.log( Number("123"))
转换结果:
注:可以解析的,转换成相应的数值;不能解析的,返回值为NaN;"" 返回值是0。
字符串专用的有:
parseInt();
//有小数点的话会舍去小数点后方的数字进行取整。
//如果内部有数字和其他值混搭的话,如果数字在前,就会将第一个字母前面的数字解析出来;
//如果内部第一个不为数值,解析值则为NaN;
parseFloat();
//可以全部显示小数点
String() 将任意类型的值专为字符串
console.log(typeof String("123"));
console.log(typeof String("aaa"));
console.log(typeof String("ture"));
console.log(typeof String("false"));
console.log(typeof String("null"));
console.log(typeof String("undefined"));
Boolean类型转换
数值:非0即真。
字符串:’'为false,其他都为true
下面这五个值会转为false,其余都为true。
- 0
- null
- undefined
- “”
- NaN
自动转换
其他数据类型转字符串
任何类型的数据和字符串类型的数据做相加操作 (+)
+ 并不是算数运算,而是字符串拼接。
此时其他的数据类型会自动转为字符串
var sun;
sun = 3 + "9";
console.log(sun);
console.log(typeof sun);
其他类型转数字
除了字符串与数字做相加运算外,其他会自动转数字进行运算。
NaN undefined 运算结果为NaN
NaN与任何类型做运算都为NaN ,包括它自身。
var sun;
sun = 3 * "9";
console.log(sun);
console.log(typeof sun);
其他数据转布尔
下面这五个值会转为false,其余都为true
- 0
- null
- undefined
- “”
- NaN
用户输入
prompt()
prompt(title,[default])
title 是给用户显示的文本。
[default] 中括号表示参数是可选的, default 默认值
var name = prompt('请输入您的名字','张三');
confirm(问题)
点击确定返回 true 点击取消 返回false
var name = prompt('请输入您的名字','张三');
var verification = confirm('您的名字叫做:' + name)