JavaScript基础语法
- ECMASCRIPT: 定义了javascript的语法规范,描述了语言的基本语法和数据类型
2.BOM:浏览器对象模型(弹出框,浏览器的跳转)
3.DOM:文档对象模型。通过 DOM 可以操作页面中的元素。(增加个 div,减少个 div,给div 换个位置)
```
JavaScript的引用方式
分为行内式、内嵌式、外部引用(外链式)
```html - 行内式(几乎不用,也不推荐使用) 你好
- 内嵌式
3.外部引用
4.错误写法(只能干一件事)
5.ES6模块引入
html中
js中
alert(你好);
下面的这句必须写
export default {};
特点(重点):
1、引入路径前面必须加 ./
2、必须通过http协议访问
【注】安装一个live-serve的插件,通过服务器启动我们当前的.html页面
```
常量/字面量/直接量
- 基本数据类型
数字——- Number
100,-100,3.14
字符型——String
“hello” ‘world’ “你好”(单引号双引号都一样)
布尔值——boolean
tryu,false
特殊数据类型
NaN(not a number)
undefined(数据类型是undefined)
null(数据类型是object)
判断数据类型
- 使用typeof判断数据类型(typeof的数据类型是以字符串的形式输出)
- var num1 = 10;console.log(typeof num1);
- var str = “helloworld”;console.log(typeof str);
var Yes = true;console.log(typeof Yes);
判断里面的数是否是NaN(isNaN() )
强制数据转换
Number(变量)
- 可以把一个变量强制转换成数值类型
- 可以转换小数,会保留小数
- 可以转换布尔值
- 遇到不可转换的都会返回 NaN
- 只能纯数字才能转换为数字,其他的为NaN
console.log(Number(true)); //1
// console.log(Number(false)); //0<br /> // console.log(Number(undefined)); //NaN<br /> // console.log(Number(null)); //0
parseInt(变量)
- 从第一位开始检查,是数字就转换,知道一个不是数字的内容
- 开头就不是数字,那么直接返回 NaN
- 不认识小数点,只能保留整数
parseFloat(变量)
- 从第一位开始检查,是数字就转换,知道一个不是数字的内容
- 开头就不是数字,那么直接返回 NaN
- 认识一次小数点
- 除了加法以外的数学运算
- 运算符两边都是可运算数字才行
- 如果运算符任何一遍不是一个可运算数字,那么就会返回 NaN
- 加法不可以用
Boolean(变量)
- 值可以被改变的量叫做变量
- 声明变量,申请内存空间并存储。
- 语法:
var 变量名 = 值;
注意:一个变量名只能存储一个值当,再次给一个变量赋值的时候,前面一次的值就没有了变量名称区分大小写(JS 区分大小写)
var num1 = 100;num1 = 200;(给变量赋了个新值)
- 变量细节
- 变量初始化:在声明变量的时候直接给这个变量赋值
- 如果不给这个变量赋值,系统会默认给他一个值,这个值叫做undefined
- 提高开发效率的赋值方法:
var num = null;
num = 10;
console.log(num);
- 变量的命名语法规则
- 必须遵守的,不遵守就是错
- 一个变量名称可以由 数字、字母、英文下划线(_)、美元符号($) 组成
- 严格区分大小写
- 不能由数字开头,不要使用中文汉字命名
- 不能是 保留字 或者 关键字
- 不要出现空格
- 建议遵守的(开发者默认),不遵守不会报错
- 除数可以为零
var num = 10;
console.log(num / 0); //Infinity 无穷大
console.log(-10 / 0); //-Infinity 无穷小
-
JS是弱引用语言
js是弱数据类型的语言,容错性较高。 定义时不需要定义类型,赋值赋的是啥类型就是啥类型
var temp; //temp时啥数据类型?不确定
temp= 12; //temp变量是数字类型
temp = “hello”; //temp变量变成了字符串类型
输出
执行程序:先从硬盘将程序读入到内存中,然后在内存中被CPU运行
进制转换
- 十进制转为二进制
模二取余:十进制除以2,余数倒着往上写。
- 二进制转为十进制
11001
1+12^3+12^4
- 八进制和十六进制和十的互相转换:先转化为二进制再转换要转换的进制。
- 二进制转换为八进制
从右往左数,每三位一组,不足三位的用0补齐。然后将每组数,单独转成十进制。
- 二进制转换为十六进制
从右往左数,每四位一组,不足四位的用0补齐。然后将每组数,单独转成十进制。
进制在JS中的写法
十进制:52<br /> 二进制:0b110100(二进制前面加0b)<br /> 八进制:064(八进制前面加0)<br /> 十六进制:0x34(十六进制前面加0x)
进制的转换写法
var num1 = 52;
var num2 = 0b110100;
var num3 = 064;
var num4 = 0x34;
console.log(num1.toString(2));
console.log(num2.toString(10));
console.log(num3.toString(2));var num2 = “110100”;(进制不用加特殊表示方法)
var newNum = parseInt(num2, 2);
console.log(newNum);总结:第二种方法不管你输入什么值都给你转换为十进制,括号后面第二个值用于描述前面的值是什么进制。
运算符
- 算数运算符
自动数据类型转换规律
- 任何类型的数据和字符串类型的数据做相加(+)操作时,其他数据类型会自动的转换为字符串类型。此时的相加(+)不再是数学意义上的加法,而是表示“拼接”的意思。
- 任何数据除了和字符串做相加运算外,与NaN做算术运算的结果始终都是NaN。包括NaN本身和NaN做运算的结果也是NaN。(字符串是数值会自动的转换为数字,否则会转换为NaN)
- 任何其他数据除了和字符串做相加操作外,与数字类型做算术运算时,其他数据会自动的转换为数字。(true会自动的转换为1 false会自动的转换为0 null会自动的转换为0 undefined会自动的转为NaN)
【注】不同数据类型之间的数据,进行运算的问题。
【隐式/自动数据类型转换】必须先将数据转成同一数据类型,然后在进行运算,由于这个过程是系统自动完成的。
- 关系运算符
和其他运算符一样,当关系运算符操作非数值时要遵循一下规则:
关系运算符中null和undefined和NaN的值为NaN
- 逻辑运算符
&&,||,!
&&
语法:表达式1 && 表达式2
【注】这两个表达式都为true,才为true。
短路操作:当第一个表达式为false的时候,第二个表达式就不执行了。
|| <br /> 语法:表达式1 || 表达式2<br /> 【注】这两个表达式都为false,才为false。<br /> 短路操作:当第一个表达式为true的时候,第二个表达式就不执行了。
!<br /> 语法:!表达式<br /> 【注】取反<br /> 【注】非空即真,非0即真。<br /> 1.操作数是一个空字符串,返回 true;<br /> 2.操作数是一个非空字符串,返回 false;<br /> 3.操作数是数值 0,返回 true;<br /> 4.操作数是任意非 0 数值(包括 Infinity),false;<br /> 5.操作数是 NaN,返回 true;<br /> 6.操作数是 undefined,返回 true;<br /> 短路操作<br /> alert(a)报错<br /> &&命题 console.log(5 <4 && alert(a));<br /> ||命题 console.log(5>4 || alert(a));<br /> 就是利用&&运算符出现一个假命题程序就不会继续往下运行了<br /> ||运算符出现一个真命题就不会继续往下运行了
- 一元运算符
a++,++a
++后置,先对a取值,作为a++的值,然后对a进行+1操作。
++前置,先对a加1,再取a的值,作为++a的值。
a—,—a
—后置,先取a的值,作为a—的值,然后在对a进行-1操作。
—前置,先对a进行-1,然后在取a的值,作为—a的值。
- 赋值运算符
=
+=,-+,*=,/+,%=
将等号右边的值赋值给左边
恒等和恒不等
【注】在判断的时候,恒等判断数值和数据类型都相等,为true。
a+=10;相当于a=a+10;
- 位运算符
表达式
表达式:任何运算符和操作数组成的式子叫做表达式。
1、表达式的值
2、表达式的功能
10 + 20就是一个表达式