背景:
1995年诞生,后来由LiveScript改名为Javascript
组成:
核心(ECMAScript)、 浏览器对象模型(BOM) 、文档对象模型(DOM)
特点:
1)轻量级语言; 2)弱语言; 3)脚本语言
书写方式:
1)js代码写在<script></script>标签内部,script标签可放在html文件任何位置,一般放在body最下方
2)写一个js文件,用外部javaScript文件引入
<Script>
console.log('my first js')
</script>
引入这个js文件
<script src="demo1.js" ></script>
3)写在事件属性内部:
<a href="#"onclick="alert(''这是一个弹窗")></a>
js常见代码:
页面弹窗代码:alert(“hello world!”) ;
文档打印代码:document.write(“hello world!”);
控制台打印代码:console.log(“hello world!”);
注释(不会被编译):
单行注释: //,(ctrl+/) 多行注释 /* */ (alt+shift+a)
变量定义(使用var 关键字)
var number = 100;(“以英文的分号结尾”)
变量名的书写遵守原则:(见名知意)
1.有数字、字母、下划线等字符(不能以数字开始)
2.采用驼峰命名法(如“MyFirstJs”)
3.不能使用关键词(占用之前的关键词的引用空间)
4.普通变量首字母小写 常量全大写(const)
常见的关键字有:
JS基础数据类型(值类型):
number(所有数值类型:int、float)
string(用''或""括起来的都是字符串类型)
Boolean类型(ture flase)
null类型(null值)(null派生了undefined)
undefined类型(未定义的,即没有给具体的值)
object (对象类型,引用数据类型)
类型转换:
number类型转为string类型(toString()方法) :
var str1 = number1.toString()
string转为number有以下方法:
1.Number方法(直接转number类型)
2.使用parseInt方法(转整型)
3.使用parstFloat方法 (转小数)
var str2 = "1a123.12a" ; console.log(parseInt(str2));console.log(parsefloat(str2));
特殊NaN:console.log(Number(str2));
//当你将一个内容转为的数值过程中无法被解析就会出现NaN ,从前到后取值 前面没有数值变成NaN
NaN:不是返回false(not a number )
var a = 10
console.log(isNaN(a)) //false(false代表isNaN不是NaN,所以返回false)
var str = 'abc'
console.log(isNaN(Number(str)))//true(ture代表isNaN 是NaN,所以返回true)
无穷大:Infinity; 无穷小-Infinity;
将字符串转为对应的boolean类型:
Boolean 类型的转换规则:
String: 非空字符串为true, 空字符串为false
Number:非0数值和NaN为true, 0或者NaN为false
Object: 对象不为null则为true, null为false
Undefined : undefined为false
将对应的undefined和null转为number:
var un;
console.log(Number(un)) //NaN;
console.log(Number(null)) //0;
运算符和表达式:
算术运算、逻辑运算、位运算:
算术运算符 : +,-, , /, %(取余数)
字符串和变量的拼接: +
关系运算符 : <、>、<=、>=、==、!=, ===(全等 俩个类型和对应的值一模一样 这个俩个是一个东西)
逻辑运算符 : && 与(且)、|| 或、! (非)
非赋值运算符 : =、+=、-=、=、/=、%=
自增、自减 : ++a, a++, --a, a--(++a先进行自增再执行代码块,a++先执行代码块再进行++自增)
!!!计算顺序 先算括号里面的 ++或-- 再进行乘除取余 再进行+- 再进行比较运算 再逻辑运费 再进行赋值