绪论
JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器, 所以在浏览器上按照JavaScript语言的规则编写相应代码.浏览器可以解释并做出相应的处理.
一.基础知识
1.如何在中写javascript代码.
- 在HTML的head中:`
<script>
//javascript代码
alert(123);
</script>
<script type="text/javascript">
//javascript代码
alert(123);
</script>
- 引入js文件:
<script src='js文件路径'></script>
注释
- 当行注释 //
- 多行注释 /* */
变量
JavaScript的变量按照作用域不同可以分为:
- 全局变量 例: name = ‘alex’
- 局部变量 例: var name = ‘eric’
基本数据类型
JavaScript作为一门编程语言,大致上跟其他的高级语言一样有着些基本数据类型:
- a = 18……..数字类型
- a = ‘shunzi’…….字符串
- a = [11, 22, 33]….数组
- a = { ‘k1’: ‘v1’, ‘k2’: ‘v2’ }……..字典
- a = true………..布尔类型(小写)
语法语句
JavaScript同样跟其他高级语言一样有着语法语句:
for循环(两种语句格式)
1.循环时,循环的元素是索引
a = [11,22,33,44]
for(var item in a){
console.log(item);
}
a = {'k1':'v1','k2':'v2'}
for(var item in a){
console.log(item);
}
2.该方式不支持字典的循环
a = [11,22,33,44]
for(var i=0;i<a.length;i=i+1){
console.log(i)
}
条件语句:
if(条件){
}else if(条件){
}else{
}条件类型:
== 值相等
=== 值和类型都相等
&& and
|| orwhile语句:
while(条件){ ...}
当条件为真时才会执行括号体内的语句
函数:(三种函数)
1.普通函数:
function func(){
console.log(1);
}
2.匿名函数:在函数定义的时候直接调用.
var a = function(){
console.log(1);
}
3.自执行函数:
function(arg){
console.log(arg);
}(1) #‘1’为参数。
函数作用域
1.
其他语言:以代码块作为作用域.
python:以函数作为作用域.
JavaScript:以函数作为作用域.
2.函数的作用域在函数未被调用之前,已经创建.
function func(){
}
3.函数的作用域存在作用域链,并且也是在被调用之前创建.
function func(){
function inner(){
}
}
4.函数内局部变量提前声明.
序列化:
JSON.stringify() #将对象转换为字符串
JSON.parse() #将字符串转换为对象类型.
...
转义:
decodeURI( ) #URl中未转义的字符
decodeURIComponent( ) #URI组件中的未转义字符
encodeURI( ) #URI中的转义字符
encodeURIComponent( ) #转义URI组件中的字符
例子:当客户端使用密码和账户登录时,服务器端会将该用户的cookie信息经过转义后存储到客户端计算机上的某个地方.
eval:
“`
python:
val = eval(表达式) 例:eval('1+1')
exec(执行代码) #拿不到返回值
JavaScript:
eval #Python中eval和exec的合集,既可以编译代码也可以获取返回值。
“`时间
Data类
var d = new Data()
d.getXXX(hour|year|minute...) 获取
d.setXXX(hour|year|minute...) 设置
JavaScrip面向对象
a.this代指对象(python self) #谁调用包含this的函数,这个this就指向谁。
b.创建对象时,new 函数()
c.原型:(方法定义执行一次,节省资源.)
function Foo(n){
this.name = n;
}
# Foo的原型
Foo.prototype = {
'sayName':function(){
console.log(this.name)
}
}
拓展:JavaScript中程序运行时的词法分析阶段