JavaScript的核心就是ECMAScript
文档对象模型:DOM(整合js,css,html)
浏览器对象模型:BOM(整合js和浏览器)
一.Javascript引入方式
1.直接编写
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
<script>
alert("hello python")
script>
head>
<body>
body>
html>
2.导入文件
<body>
<script src="hello.js">script>
body>
新建一个javascript文件hello.js
二.变量的声明
var name="nick",age=13;
变量名:在变量前面用小写字母形式标记类型,其余均大写
var sName="nick"
三.注释
//或者/* */
四.函数
<script>
function sayHello() {
var hellolist="hello";
document.write(hellolist)
}
sayHello()
script>
五.数据类型
1.基本数据类型
1)数字数据类型
包括整型和浮点型
2)字符串数据类型(string)unicode
var s=”hello”
var s1=”\u4f60\u597d\n欢迎来到\”javascript世界\””
经常用转义字符\n:换行;\’:单引号;\”:双引号;\:右划线;
3)布尔值 true false用于条件判断
if(true){
alert(“success”);
}
4)Undefined:Undefined
var a;声明了某个变量,但未对他进行赋值,则该变量就是Undefined
5)NULL类型
var obj=new Animal();new一个对象
var obj=NULL;开辟一块对象内存,占一个对象位置;
2.数据类型的转换
alert(1+”hello”)
数字+字符串->数字转化为字符串
数字+布尔值->true->1,false->0
字符串+布尔值->布尔值转化为字符串true或者false
alert(parseInt("a3.1415"))->强制转化为整数
//NaN:当字符串转化为数字失败就是NaN,属于Number
alert(NaN==0) //false
alert(NaN>0) //false
alert(NaN<0) //false
alert(NaN==NaN) //false
alert(NaN!=0) //true
//总结:NaN数据在表达式中结果一定为false,只有在!=中才是true
//强制转化为浮点数parseFloat
//将字符串强制转化为表达式并返回结果evel
数据类型判断
alert(typeof (3.14))
var s="hello";
alert(typeof(s));//string
var s2=new String("hello")
alert(typeof(s2));//Object
alert(s2 instanceof String);//true
六.ECMASCript运算符
1.算术运算符
1)+,-,*,/,%
-可以表示减号和负号
+可以表示加号和字符串连接符
2)递增++,递减--
var a=1;
var b=a++;先赋值在加1
var b=++a;先加1再赋值
var x=1;
var (x++);//1
var (++x);//3
var (--x);//2
var (x--);//2
2.逻辑运算符
==,!=,>,<,>=,<=,&&,||,!
逻辑AND运算符(&&),运算数不是原始的布尔值,则:
1)一个是对象,一个是布尔值,返回对象
2)两个都是对象,返回第二个对象
3)某个为null,返回null
4)某个为NaN,返回NaN
5)某个是Undefined,返回Undefined
>>右移,<<左移,NOT
位运算:&,|,^
3.条件语句
if…else…
<script>
var week="sunday"
if(week=="sunday"){
alert(7)
}else if(week="saturday"){
alert(6)
}else {
alert("not 6 or 7")
}
script>
switch语句的基本格式
switch (表达式){
case 值1:语句1;break;
case 值2:语句2;break;
case 值3:语句3;break;
default:语句4;
}
for语句
var a=[1,"hello",true];
for (var i in a){
//console.log()还可以接受变量作为参数传递到字符串中,在html网页中右击检查,console中可以看到结果
console.log(i);//输出下标0,1,2
console.log(a[i]);//输出值
}
求0-100相加的和
var ret=0;
for (var i=1;i<101;i=i+1){
ret=ret+i }
alert(ret)
字体从大到小输出hello
<script>
for (var i=1;i<=6;i=i+1){
document.write("+i+">hello+i+">");
document.write("
")
}
script>
七.异常处理
try{}
catch(e){}
finally{}
主动抛出异常 throw Error(‘xxx’)
八.作用域比较
1.python的作用域
c="beijing"
def f():
c="shanghai"
def inner():
print(c)
return inner
ret=f()
ret()
def Bar():
print(c)
def f():
c="shanghai"
return Bar
ret=f()
ret()
# python是加载一半执行一半
# shanghai
# beijing
2.js作用域
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
head>
<body>
<script>
var city="beijing"
function func1() {
var city="shanghai"
function inner() {
console.log(city)
}
return inner
}
var ret=func1()
ret()
var city="beijing"
function Bar() {
console.log(city)
}
function func1() {
var city="shanghai"
return Bar
}
var ret=func1()
ret()
script>
body>
html>
//程序加载完成后执行
//beijing
//beijing
补充
<script>
for(var i=1;i<=9;i++){
setTimeout(function timer() {
console.log(i)
},1000)
}
// 输出结果是1s后打印一次i的内容,结果是9个10
for(var i=1;i<=9;i++){
console.log(123)//10次123
}
console.log(i)//10
script>