一、行内式,内嵌式,外链式
行内式往往不推荐
内嵌式通常将代码写在body的最后,因为HTML是由上到下加载的,如果先执行了JS,HYTML还未加载,n那么将无法提供交互性;HTML页面中出现<script>标签后,就会让页面暂停等待脚本的解析和执行。无论当前脚本是内嵌式还是外链式,页面的下载和渲染都必须停下来等待脚本的执行完成才能继续, 所以如果把js代码写在head中, 那么js代码没有执行完毕之前后续网页无法查看;如果不愿意把js代码放在body的最后, 也可以放在head标签中, 但是为了保证执行js代码时HTML一定已经被加载了, 那么需要添加一些额外代码.(不推荐)
外链式的script代码块中不能编写JS代码,写了也不会执行
由于每次加载JS都要文件发送一次请求,因此在企业开发中常常写成一个JS文件,来提升速度。
二、常量与变量
常见的输出格式,alert,prompt,confirm等的弹出框
在页面中显示内容,document.write("HELLO");
JS严格区分大小写,每一条JS后面都要以;结尾
JS会自动忽略多个空格和换行
特殊字符的输出,\\输出\, \"输出",\'输出'
1、常量
整型 实型 字符串 布尔值 特殊字符
2、变量
声明变量: var 变量名称;
可一次声明多个变量。
在一个白能量不初始化时,存的是undefined
在控制台查看变量 的值 console.log(num); 即刻查看num的值
三、关键字和标识符
关键字不能用作变量名,函数名等
标识符:由26个英文字母的大小写、10个阿拉伯数字0~9、下划线_、美元符号$组成
不能以数字开头
四、数据以及数据类型
数据类型:Number 数值; Null 空值; Object 对象,是引用数据类型
使用console.log(typeof num); 其中typeof可以用来检查数据类型,以字符串形式返回
关于数值型:最大值Number.MAX_VALUE, 最小值是MIN-----,无穷大Infinity,无穷小-Infinity
非法数字:NaN(not a number)
布尔型:只有0和NAN是false,空字符串是false,NULL和undefined是false
五、数据类型的转换
1、将其他类型转换为字符串:调用被转换类型的toString()方法
eg: var num = 10;
var res = num1.toString();
console.log(res); //10
console.log(typeof res); //string
其中 null 和 undefined 没有toString方法,调用会报错
数值类型的toString()可以携带哟个参数代表对应进制的值
2、将被转换的数据传入String()函数中
在没有toString()方法的时候,可以使用String()
比如null 以及undefined在内部生新的字符串
var num = null;
var res = String(num);
console.log(res); //null
console.log(typeof res); //string
3、将被转换数据和 +“” 连接在一起
任何数据和+“” 连接都会变成字符串
var num1 = 10;
var res1 = num1 + "";
console.log(res1); // 10
console.log(typeof res1); // string
4、其他类型转换为Number类型
将被转换的数据传入Number()函数中
如果是纯数字的字符串,则直接将其转换为数字
var str1 = "123";
var res1 = Number(str1);
console.log(res1); // 123
console.log(typeof res1); // number
如果字符串中有非数字的内容,则转换为NaN
var str2 = "123ab";
var res2 = Number(str2);
console.log(res2); // NaN
如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
布尔类型->数字
null 转数字为0
undefined 转数字为NaN
5、被转换数据传入parseInt()函数 或者 parseFloat()函数中
Number()函数中无论混合字符串是否存在有效整数都会返回NaN
利用parseInt()/parseFloat()可以提取字符串中的有效整数
两者之前的区别是前者只能提取整数,后者可以提取小数
parseInt()提取字符串中的整数
-
- 从第一位有效数字开始, 直到遇到无效数字
- 如果第一位不是有效数字, 什么都提取不到, 会返回NaN
- 第一个参数是要转换的字符串,第二个参数是要转换的进制
parseFloat提取字符串中的小数
- 会解析第一个. 遇到第二个.或者非数字结束
- 如果第一位不是有效数字, 什么都提取不到
- 不支持第二个参数,只能解析10进制数
- 如果解析的内容里只有整数,解析成整数