js分三个部分:
1.ECMAScript 标准–js的基本语法
2.DOM 文档对象模型
3.BOM 浏览器对象模型
JavaScript是什么?
- 是一门脚本语言;
- 是一门解释性语言;
- 是一门动态类型的语言;
- 是一门基于对象的语言。
js的作用是什么?
解决用户与浏览器之间的交互问题。
js现在的意义(应用场景)
1.网页特效;
2.服务端开发(node.js);
3.命令行工具(node.js);
4.桌面程序(electron);
5.App(cordova);
6.控制硬件-物联网(Ruff);
7.游戏开发。
js代码注意的问题:
1.在一对script的标签中有错误的JS代码,那么该错误的代码后面的JS代码不会执行;
2.如果第一对script标签中有错误,不会影响后面的script标签中的JS代码执行;
3.script的标签中可以写的内容:type="text/javascript"是标准写法或者写language="javascript"都可以;
4.script一般放在body的标签的最后面。
变量
- 变量操作的数据都是在内存中操作的。
- JS中存储数据采用变量的方式(名字,值)。
- JS中的字符串类型的值用""或者’’。
- JS中声明变量都用var,存储数据都应有对应的数据类型。
- 变量的作用:用来操作数据(可以读取,可以存储);
- 变量名如果是多个单词,第一个单词的首字母小写,其他单词的首字母大写(驼峰命名法)。
变量交换
1.第一个思路:借助第三方的变量进行交换。
var num1=10;
var num2=20;
var temp=num1;
num1=num2;
num2=temp;
console.log(num1,num2); //20,10
2.第二个思路:一般适用于数字的交换。
var num1=10;
var num2 =20;
num1=num1+num2;//30
num2=num1-num2;//10
num1=num1-num2;//20
console.log(num1,num2);//20,10
3.第三个思路:(扩展–位运算)
var num1=10;
var num2= 20;
num1=num1 ^ num2;//异或运算(num1=11110)
num2=num1 ^ num2;//(num2=01010)
console.log(num1,num2);//20,10
js中原始数据类型number,string,boolean,null,undefined,object.
其中,number:数字类型(整数和小数)。
什么情况下结果是undefined?
1.变量声明了,没有赋值;
2.函数没有明确返回值,如果接收了,结果也是undefined。
如果一个变量的结果是undefined和一个数字进行计算,结果是NaN(非数字)。
var nll =null;
console.log(typeof nll);//object
console.log(string(nll));//null
Number
js中可以表示哪些进制?
var num1 = 10;//十进制
var num2 = 012;//八进制
var num3 = 0x123;//十六进制
数字类型有范围:
console.log(Number.MAX_VALUE);//数字的最大值
console.log(Number.MIN_VALUE);//数字的最小值
注意:
1.不要用小数去验证小数。
var x = 0.1;
var y = 0.2;
var sum = x + y;
console.log(sum==0.3);//false
2.不要用NaN去验证NaN。
console.log(num + 10 == NaN);//false
那么,如何去验证这个结果是不是NaN,应该使用 isNaN(变量名) 。
var num;
console.log(isNaN(num));//false
Infinity:无穷大; -Infinity:无穷小;
String
var str ="10";//字符串
str.length;//字符串长度
html中的转义符:
< <
> >
空格  
js中的字符串也有转义字符:
转义序列 | 字符 |
---|---|
\b | 退格 |
\f | 走纸换页 |
\n | 换行 |
\r | 回车 |
\t | 横向跳格 |
\’ | 单引号 |
\" | 双引号 |
\\ | 反斜杠 |
字符串拼接,使用+号。
只要有一个字符串,其他的是数字,结果也是字符串拼接。
var str1 = "10";
var str2 = 5;
console.log(str1-str2);//隐式转换(浏览器帮助我们自动的把字符串类型转换成数字类型)
类型转换
其他类型转换成数字类型:
- parseInt();//转整数
console.log(parseInt("10.98"));//10
console.log(parseInt("10adasdadasd"));//10
console.log(parseInt("g10"));//NaN
console.log(parseInt("10.98dsadasda));//10
- parsefloat();//转小数(竭尽全力去转)
console.log(parseFloat("g10"));//NaN
- Number();//转数字(比第一二种方式严格)。
其他类型转字符串类型
- .toString()
var num = 10;
console.log(num.toString());//字符串类型
- String()
var num1 = 20;
console.log(String(num1));
注意:
如果变量有意义用.toString()转换;
如果变量没有意义使用String()转换。
var num2;(没有意义)
console.log(String(num2));
其他类型转布尔类型
非0数字为true;
0为false;
""为false;
null为false;
undefined为false。
运算符
关系运算符
== 不严格的
=== 严格的(类型和值)
var str = "5";
var num = 5;
console.log(str==num);//true
!= 不严格的不等
!== 严格的不等
逻辑运算符
&& 逻辑与
|| 逻辑或
! 逻辑非
字面量:把一个值直接赋值给另一个变量。
var x = 10;
var y = x ; //不是字面量
prompt(""):弹框输入。
分支
两个分支,最后的结果是两个分支中的一个,用三元运算符。
语法: 表达式1?表达式2:表达式3