js的书写方式
1.在标签中直接写
<button onclick="alert('你点击了我')">按钮</button>
2.书写方式 在script标签中去写 script可以放在当前文档的任何地方
<script>
window.onload = function () {
document.querySelector("button").onclick = function () {
alert("你点击了我")
}
}
</script>
3.可以在外部js内写 然后通过script标签引入
<script src="./index.js"></script>
如果说script标签是用来做了引用外部js文件,那么在这个标签中就不能继续去写js代码
注释
单行注释 ctrl+/
多行注释 ctrl + shift + /
弹窗
alert("<h1>我是一个弹窗</h1>");
在文档中输入内容
document.write("<h1>在文档中输入内容</h1>");
控制台中输出语句
console.log('我在控制台中打印内容');
js注意事项
1.js是明确的区分大小写的 如果代码报错,后面的内容就会中断 可以在控制台中看到错误信息
2.不要随意换行
变量
变量是一个它存储的值可以发生变化的容器
1.定义变量 通过关键字 var来进行定义
var x;
2.给变量赋值
x = 10;
3.使用该变量
console.log(x);
声明变量和赋值变量 同时书写
var x = 10;
console.log(x);
js属于弱语言
声明变量前面必须要有关键字 ,下面没有使用var关键字的变量会自动保存到window对象里面去;
变量名不能重复使用 ;
变量的命名规则
1.不能以数字开头 可以包含数字
2.不能包含除了_、$符号以外的特殊符号
3.变量是严格区分大小写的
4.变量不能使用es的关键字和保留字
5.变量我们应该以(大小)驼峰命名的方式去命名(规范)
小驼峰
var get_user_info = '用户的信息';
大驼峰命名规则
var getUserInfo = 10
常量:声明的常量是不可以发生变化的,声明常量必须要有一个初始值
在es5中常量其实是可以发生变化的
需要程序自己来约束 全部程序员 默认都是这么干的
看到变量是全部大写的 就不会再去修改它了
var BASEURL = 10;
js种的数据类型 基本数据类型和引用数据类型
6种基本数据类型
Number:数值型 合法数字 Infinity(正无穷) -Infinity(负无穷) NaN(not a number)
String:字符 字符串 存放在双引号或者单引号里面的内容
Boolean: 布尔类型 true-真 false-假 后面用进行逻辑判断
Undefined:未定义的 undefined 声明了没有赋值
Null:空对象 返回的数据类型是object 可以解除一些事件绑定和数据引用关系等
Symbol(es6新增)
其余的数据类型转换成String类型
1.使用String函数
其余的任何基本数据类型使用该方法进行转换 最终得到的结果都是再原本的数据上加了双引号或者单引号
// x = String(x);
// console.log(x);
// console.log(typeof x);
2.使用toString函数
null 和 undefined使用该方法会报错
其它类型使用该方法 最终得到的结果都是再原本的数据上加了双引号或者单引号
// x = x.toString();
// console.log(x);
// console.log(typeof x);
3.使用隐式转换 +'' 或者 +""
使用该方法最终结果等价于String函数
//var x = null + "";
// console.log(x);
// console.log(typeof x);
其余的数据类型转换成Number类型
一.使用Number函数
1.String类型使用该方法它会判断里面的内容是否是合法的Number,如果是合法的数字那就返回合法数字
如果字符串中不是一个合法的数字就返回NaN,空字符串返回0
2.Boolean使用该方法 true - 1 false - 0
3.undefined - NaN
4.null - 0
二:使用隐式转换在数据前面写+
该方式得到所有结果和Number是一致
三:使用parseInt函数
1.String类型转换的时候:去字符串中从第一个字符开始查找,当碰到非法数字的时候返回前面合法数字部分.
如果说第一个就是非法数字 直接返回NaN
2.其余的数据类型使用该方法全部返回NaN
四:使用parseFloat函数
1.String类型使用该方法的时候:去字符串中从第一个字符开始查找,当碰到非法数字(第一个小数点不包含)
的时候返回前面合法数字部分.如果说第一个就是非法数字 直接返回NaN
2.其余的数据类型使用该方法全部返回NaN
// 方案一:使用Number()函数
// var x = null;
// x = Number(x);
// console.log(x);
// console.log(typeof x);
// 方案二:使用隐式转换 +
// var x = +null;
// console.log(x);
// console.log(typeof x)
// 方案三:使用parseInt()函数
// var x = null;
// x = parseInt(x);
// console.log(x);
// console.log(typeof x);
// 方案四:使用parseFloat()
var x = false;
x = parseFloat(x);
console.log(x);
console.log(typeof x);
其余的数据类型转换成Boolean类型
一:使用Boolean函数
1.Number类型使用该方式转换 NaN和0是false 其余的数值就是true
2.String 类型使用该方法转换 除了空字符串(连一个空格都没有的)是false,其余的都是true
3.undefined和null使用该方式返回false
二:使用隐式转换!!
任何数据类型使用该方式 最终得到的结果和使用Boolean函数一致
/* 方案一:使用Boolean函数 */
// var x = null;
// x = Boolean(x);
// console.log(x);
// console.log(typeof x);
// 方案二:使用隐式转换 !!
// var x = !!undefined;
// console.log(x);
// console.log(typeof x);
+:
以下所有总结不包括字符串
两个数据进行相加会先转换成Number类型然后进行相加,
合法的两个数据类型进行相加就会返回 相加的结果
合法的数据类型和Infinity进行相加 得到的就是Infinity
所有数据和NaN进行相加返回的就是NaN
字符串再和任何数据类型相加的时候 会进行拼串 最终得到的结果类型是String类型
-:
任何数据类型再进行相减运算的时候会先转换成Number类型 然后进行计算
任何数据类型和NaN进行相减 返回都是NaN
*
任何数据类型再进行相乘运算的时候会先转换成Number类型 然后进行计算
任何数据类型和NaN进行相乘 返回都是NaN
/
任何数据类型再进行相除运算的时候会先转换成Number类型 然后进行计算
任何数据类型和NaN进行相除 返回都是NaN
%:模
任何数据类型再进行相模运算的时候会先转换成Number类型 然后进行计算
任何数据类型和NaN进行相模 返回都是NaN
++: 自增
在自己的本身+1 只能再数值本身去加1
在赋值的时候 如果说++在前面 先运算在赋值
如果说++ 在后面的那么就是先赋值在运算
--: 自减
再本身减1 道理和自增是一样的
/* 赋值运算符
=
将右边的值赋值给左边变量
+=
再自己的本身增加多少内容
x += 5 ==> x = x+ 5
-=
再自己的本身增加多少内容
x -= 5 ==> x = x- 5
*=
再自己的本身去乘多少
/=
再自己的本身去除多少
%=
再自己的本身去模多少
*/