一、JavaScript基础语法
- js中的注释
//单行注释
/*多行注释*/
- 语句
- 一条语句结束需要加分号(现在的版本可以不用写)
- 一行写多条语句必须样分号隔开
js中没有缩进问题, 用
{ }
表示一个块基本数据类型:
Number(数字)、String(字符串)、Boolean(布尔)、Array(数组)--列表、Object(对象)--字典、Function(函数)、null、undefined字面量
数字: 12, 2.718, 3e2;
字符串: 'abc',"ABC";
布尔: true,false;
数组: [1,2,3,4,'a',true],[];
对象: var dict = {'a': 12, 'b': 23, 'c': true};标识符
- 使用标识符来命名
- 由字母数字下划线和$组成, 数字不能开头
- 不能是关键字
- 大小写敏感,区分大小写
- 要见名知意
二、变量的声明
在js中可以通过声明变量来保存数据
1.语法
var 变量名
var 变量名 = 值
说明:
var 是关键字
变量名: 标识符, 不能随意使用_或$开头;
驼峰式命名规则(首字母小写,后面每个单词首字母大写)
三、运算符
1.数学运算符: +, -, , /, %, ++, --
a. +,-,,/,%跟数学运算一致
b.++,--单目运算符,自增和自减
++(--)变量/变量++(--)
赋值时++a先自增再赋值, a++先赋值再自增
var a = 5
a--
console.log(--a)
2.比较运算符: >, <, ==, !=, >=, <=, ===(完全相等), !==, >==, <==
结果都是布尔值
==: 判断值是否相等
console.log(5==5)
console.log(5=='5')
===: 判断值和类型是否相等
console.log(5===5)
console.log(5==='5')
逻辑运算符: &&(与), ||(或), !(非)
console.log('与:',true && true, '或:', true||true)
赋值运算符: =,+=,-=,*=,/=,%=
赋值运算符的左边必须是变量三目运算符: 条件语句?值1:值2
条件为真,则值为值1,否则为值2运算符的优先级和python基本一样,可以通过括号来改变运算顺序
四、javascript中的分支
- Switch 语句
语法
switch(n)
{
case 1:
执行代码块 1
break;
case 2:
执行代码块 2
break;
default:
n 与 case 1 和 case 2 不同时执行的代码
}
工作方式:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。
- if - else if -else语句
语法
if (条件 1)
{
当条件 1 为 true 时执行的代码
}
else if (条件 2)
{
当条件 2 为 true 时执行的代码
}
else
{
当条件 1 和 条件 2 都不为 true 时执行的代码
}
工作方式: 先判断条件1是否为真, 是则执行条件1下的代码块, 否则判断条件2, 同上操作, 所有条件都为假时,执行else下的代码块, 可视情况省去else if 和 else 语句
五、循环语句
JavaScript中有四种循环:for (变量 in 序列) {循环体}
, for(语句1,语句2,语句3){循环体}
,while(条件语句){循环体}
,do{循环体}while(条件语句)
- for (变量 in 序列) {循环体}: 遍历序列, 变量依次获得序列的下标, 没迭代一次,执行一次循环体
JavaScript for/in 语句循环遍历对象的属性:
实例
var person={fname:"John",lname:"Doe",age:25};
for (x in person)
{
console.log(person[x];)
}
- for(语句1,语句2,语句3){循环体}:
- 语句 1 在循环(代码块)开始前执行
- 语句 2 定义运行循环(代码块)的条件, 满足时执行循环体
- 语句 3 在循环(代码块)已被执行之后执行
var x = ''
for (var i=0; i<5; i++)
{
x=x + "The number is " + i + "<br>";
}
- while(条件语句){循环体}: 当条件语句为真时执行循环体, 每执行一次循环体判断一次条件语句
例如
求1+2+3+...+100的值
var sum = 0
while(var i <= 100)
{
sum += i
}
- do{循环体}while(条件语句): 先执行循环体, 再判断条件语句,为真, 则继续执行循环体
do
{
循环体
}while(条件语句)
六、函数及数据 类型
函数的声明
function 函数名(参数列表){函数体}
funciton - 关键字
函数名 - 驼峰式;见名知意
参数: 参数可以有默认值, 有默认值的参数要写到后面
保证每个参数有值
函数体: 实现函数功能, 只有调用的时候才执行
//没有return时返回值是undefined
function sum1(b,a=1){
console.log('求和')
return a+b
}
console.log(sum1(5,4));
函数的调用
函数名(实参列表)
调用过程和python一样
作用域
全局变量:声明在函数外面的变量(从声明开始到文件结束)
局部变量:声明在函数里面的变量(从声明开始到函数结束)
函数中可以修改全局变量的值
函数中可以声明函数
可以将函数作为变量
数据类型
1.数字,字符串,布尔,列表,对象
- 数字: 包含整数和小数(支持科学计数法)
var num1 = 10;
var num2 = new Number()
2. 字符串
a. ' ' 和" "括起来的字符集
b. 转义字符(和python一样)
c. 字符编码: Unicode编码
d. str.length: 获取字符串长度
e. 获取单个字符:str下标, 越界结果是undefined
没有切片操作
f. 运算符操作: +(字符串拼接), 字符串可以跟任何类型数据进行+操作
效果都是字符串拼接, 会将其他类型字符串转换成字符串
var str1 = 'abc'
var str2 = "ABC"
var str3 = '\n'
var str4 = '\'
3. 对象, 构造方法(类)
var obj1 = { name: '派大星', age: '29'}
function Person()
{
this.name = '派大星'
this.age = 12
}
var p1 = new Person()
p1.name = '大家好'
console.log(p1.name)