一.什么是JavaScript?
1.与页面进行交互的脚本语言,具有较强的逻辑性.
二.JavaScript语言的特点
1.脚本语言。JavaScript是一种解释型的脚本语言
2.基于对象
3.简单
4.动态性
5.跨平台性
三.JavaScript的组成部分
1. 核心(ECMAscript:欧洲计算机制造商系会) (语法规范:ECMA-262标准)
2. BOM 浏览器对象模型(browser object model)
3. DOM 文档对象模型(document object model)
四.
五.声明变量
// 1.使用var关键字(variable:可变的量)
var uname; // undefined
uname="周杰伦"; //赋值
// 2.声明变量即赋值(推荐)
var unam="周杰伦";
// 3.声明多个变量
var unam="周杰伦",age=20;
注意: 我们在定义变量的时候, 尽可能的不要只声明,不赋值, 而是声明的同时初始化一个值
六.数据类型
1.基本的数据类有6种
string 字符串类(单引号或双引号都是字符串)、
number 数值 类型(包含整型,浮点型)、
boolean 布尔类型(true/false)、
null (顶级) Object、
undefined 未定义类型、
object 对象类型 (array,function ....)
null派生了undefined
//分2种类型
1. 值类型 string,number,boolean,undefined
2. 引用类型 object ,array,function
2.查看基本的数据类型的方式
typeof uname
typeof(uname)
七 关键字 : 已经被JS内部使用了的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZEYxqxBd-1591777365317)(https://note.youdao.com/yws/res/53/F7C09A1F293C4734B2999A949EB37CAE)]
八 保留字: 虽然暂时还未被使用, 但将来可能会被JS内部使用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lAp3TgFs-1591777365321)(https://note.youdao.com/yws/res/52/57145C3F15C9406483A143615D8CEF39)]
变量的命名规范
只能是数字,字母,$,下划线_,但是不能以数值开头,不能使用关键字或保留字.
驼峰命名法.
1.大驼峰
var YourName=new Person();//用于表示对象
2.小驼峰
var yourName="周杰伦";//表示普通的变量
Boolean 类型的转换规则: (牢记)
String: 非空字符串为true, 空字符串为false
Number: 非0数值为true, 0或者NaN为false
Object: 对象不为null则为true, null为false
Undefined : undefined为false
Number类型:
Number 类型包含两种数值:整型和浮点型.
NaN, 即非数值(Not a Number)是一个特殊的值
ECMAScript 提供了 isNaN()函数,用来判断是不是 NaN。isNaN()函数在接收到一个值之后,会尝试将这个值转换为数值
2.2类型的自动转换
var sAge="18";
sAge-0;// 自动把字符串类型的"18"转变成 数值类型的18
2.3 强制转的方法
- Number(),String(),Boolean(),
字符串转换数字类型:
parseInt() 是把其它类型转换为整型
parseFloat() 是把其它类型转换为浮点型(小数)
JS运算符的使用
1.算术运算符 : +,-, *, /, %(取余数 mod)
2.字符串和变量的拼接: +
3.关系运算符 :
<, >, <=, >=, ==,===, != , !==
4.逻辑运算符 : && 与(且)、|| 或、! 非
// && 只要找到一个假的, 就不往后面找
// || 只要找到一个真,就不往后面找
// 又称之为 短路运算符,&&优先.
var str= 2||true&&false ;
console.log(str) // ?
5.赋值运算符 : =、+=、-=、*=、/=、%=
6.自增、自减 : ++a, a++, --a, a–
// 先自增,再乘法 最后 +
var a=10;
var sum= ++a + a++ *2
特殊的面试题.
[]==[]; //false 2个[]不同对象的地址
[]!=[]; //true 2个[]不同对象的地址的值取反
[]==![]; //true '!' 优先,'![]'的值是false,接下来就是[]==false,比较
// 由于右边不是对象,是值类型(boolean),所以左边的[]要转数值类型(Number([]))
[]==false;// []要转数值类型(Number([])) 先转数值0,再与右边比较.
先解析[] == false为什么是true?
他是经历了这个过程最终才为true的。
([] == false) ----> ([] === +0) ----> (“”== +0) ----> (+0 == +0) ---> true
// Boolean([]),是true,因为 [] 是object.
关于0.1+0.2=0.30000000000000004
我们知道,计算机中存储的都是二进制的0和1,而我们现实中的数存入计算机中转换为二进制时有可能不能整除,也就是不能正好整除,所以用二进制表示现实中的数并计算就产生了误差。