数据类型
- 数字
包含整数浮点数 - 字符串
可用单引号双引号表示 - 布尔型
值为true或者false - 特殊类型
null型:null
nudefined型:undefined
变量
-
变量类型
变量分为局部变量与全局变量,变量声明加了var是局部变量,不加是全局变量 -
变量作用范围的界定
js默认情况下是以函数为范围
常量
常量是一旦赋值就不能修改的量
正则变量
变量声明格式如下:
var 变量名 = /正则表达式/
如:
var reg = /^1\d{10}$/
函数
用function进行声明
格式如下:
function funName(){
}
注意:js中,一切皆对象
以上所有内容整合的例子如下:
function test(){
var foo = null;
console.info(foo);
foo1 = '张三';
console.info(foo1);
const PI = 3.1415926;
}
test();
function sum(a,b){
return a+b;
}
var a = sum(1,2);
b = sum;
document.write(b(1,2));
var ss = function(a,b){
return a + b;
}
document.write(ss(3,4))
函数闭包
同python,没什么可讲的
例子如下:
function outter(){
var a = "outter";
function inner(){
var a = "inner";
console.info(a);
}
console.info("------" + a)
return inner;
}
console.info(outter()())
条件语句
同c++
循环语句
同c++且类似于python
类似于python部分:
var arr = [1,2,3,4,5,6,7]
for(i in arr){
console.info(arr[i])
}
break,continue
作用同其他语言
switch分支语句
语法以及作用同c++
面向对象
对象的声明需要用到“{}”花括号表示,直接声明的实例对象需要用到var关键字,如果想声明一个原型链,则需要用到function关键字
- 实例对象
格式:
var 对象名 = {
变量名1:变量值1
变量名2:变亮值2
变量名3:function(){}
}
如果有函数作为变量,则注意变量名3的格式,实例如下:
var student = {
name:"张三",
age:29,
say:function(){
// this.方法调用者
console.info(this.name)
}
}
student.say();
console.info(student.age)
console.info(student["age"])
注意:函数不能直接充当变量,需要声明一个变量来
- 原型链
类似于类的定义,用到关键之function,this
格式:
function 原型名(参数1,参数2,...){
this.变量1 = 参数1
this.变量2 = 变量2
this.变量3 = function(){}
实例如下:
function Student(name,age){
this.name = name
this.age = age
this.sayHello = function(){
console.info(this.name + "说:Hello!")
}
}
Student.prototype.sayHello = function(){
console.info(this.name + "说:Hello!")
}
var s1 = new Student("盖伦", 100)
s1.sayHello();
原型链用new新建一个实例对象
继承以及prototype
实例如下:
function Person(name, age){
this.name = name;
this.age = age;
}
Person.prototype.shuo = function(){
console.info("hello world")
}
function User(uname){
this.uname= uname;
}
User.prototype = new Person("张生男", 20)
var u = new User('admin')
console.info(u['name'])
u.shuo();
相当于用User.prototype = new Person("张生男", 20)
表示user继承自person
ES6
箭头函数
箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments,super或 new.target。这些函数表达式更适用于那些本来需要匿名函数的地方,并且它们不能用作构造函数。
-
基础语法
(参数1, 参数2, …, 参数N) => { 函数声明 }
//相当于:(参数1, 参数2, …, 参数N) =>{ return 表达式; }
(参数1, 参数2, …, 参数N) => 表达式(单一)
// 当只有一个参数时,圆括号是可选的:
(单一参数) => {函数声明}
单一参数 => {函数声明}
// 没有参数的函数应该写成一对圆括号。
() => {函数声明} -
简单实例
var a = (v,h) => v+h
console.info(a(5,6))
类
类似于c++
class Person(){
constructor(name){
this.name = name;
}
}
继承
用exrends关键字
class User extends person(){
}
模板字符串
var age = 20
var introduce = 'myname is ${name},my age is ${age}'
console.info(introduce)
类似于python的导入导出库
// lib/math.js
export function sum(x,y){
return x + y;
}
// app.js
import {sum} from "lib/math.js"
sum()
网友评论