前端 -- javascript

JavaScript介绍

  • 能处理基础逻辑
  • 可以和浏览器交互
  • 不够严谨

JavaScript的组成

JavaScript基础分为三个部分:

JS机械重复性的劳动几乎为0,基本都是创造性的劳动。而不像HTML、CSS中margin、padding都是机械重复劳动

JS代码的引入

方式一: 在html页写js代码

<script>
alert('hello,world')
</script>

方式二:  引入js文件

<script src="first.js"></script>

结束符和注释

结束符
; 是js代码中的结束符

单行注释
// alert('hello,world');
多行注释
/*多行注释*/

变量和赋值

变量命名规范:只能由英语字母、数字、下划线、美元符号$构成,且不能以数字开头,并且不能是JavaScript保留字,变量区分大小写,也就是说A和a是两个变量

创建变量的关键字:var

创建一个变量:var a = 1

创建变量时可以不指定数据类型

创建变量但不赋值:var a  a被创建出就是一个undefined(未定义)

补充:

let声明的变量的作用域只在for循环中

function f(){
    a = 1
    for(let i = 0; i < 10; i++){
        var b = 2}
        }
a全局生效
b在函数内生效
i只在for循环中生效
循环jq对象的数组,for循环里要用let定义

 

输入输出信息

弹出框

alert ('hello')    弹出框的内容是hello

弹出输入框

var inp = prompt ('问句')    输入的内容会被返回给inp

控制台输出

console.log(变量或值)

基础数据类型

查看数据类型 typeof 变量 或 typeof (变量)

数字number

在JavaScript中,只要是数,就是数值型(number)的。无论整浮、浮点数(即小数)、无论大小、无论正负,都是number类型的

保留小数:float.toFixed(2)  保留两位小数

字符串stbuerzhiring

单、双引号都是字符串的表达方式

常用方法 说明
length(是属性) 返回长度
a.concat('abc') a拼接'abc'字符串
charAt(索引) 找出索引对应位置的字符
indexOf(字符) 通过字符求对应索引
slice(start,end) 切片,顾头不顾尾,可用负数,取子串
toLower/UpperCase() 全部转换小/大写
split(',',2) 根据分隔符切割,取前几个结果

 

 

 

 

 

 

 

 

 

 

 

 

 

 

布尔值boolean

只有两个值:小写的true和false

true包括 [] {} 

false包括 undefined null NaN 0 ''

空null和未定义undefined

null 表示空,boolean值为false
undefined 没有定义,创建变量但是不赋值,boolean值为false

内置的对象类型

数组Array

创建数组的两种方式

方式一: 字面量方式创建

var arr = ['a','b','c'];

方式二: 使用构造函数的方式创建

var arr2 = new Array();

索引操作

arr[0] 查看
arr2[0] = 'alex' 赋值操作

常用方法

常用方法 说明
length(是属性) 返回长度
pop() 获取尾部的元素
unshift(a) 头部插入元素a
shift() 头部移除元素
slice(start,end) 切片
reverse() 反转(在原数组上修改)
join(seq) seq是连接符,将数组元素连接成字符串
concat(val,...) 两个数组合并,得到新数组,原数组不变
sort() 排序
splice()

删除元素,并向数组添加新元素

参数:1.从哪删(索引) 2.删几个 3.删除位置替换的新元素(可以是多个)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSON对象

var str1 = '{"name": "chao", "age": 18}';
var obj1 = {"name": "chao", "age": 18};

// JSON字符串转换成对象
var obj = JSON.parse(str1); 
// 对象转换成JSON字符串
var str = JSON.stringify(obj1);

日期date

创建日期对象只有构造函数一种方式,使用new关键字

var dt = new Date();  //创建了一个date对象(获取当前时间)

常用方法

正则对象RegExp

创建一个正则:
var reg = RegExp('正则表达式')  //注意,写在字符串中所有带\的元字符都会被转义,应该写作\\
var reg2 = /正则表达式/  //内部的元字符就不会转义了
reg.test('待检测的字符串') //如果字符串中含有符合表达式规则的内容就返回true,否则返回false

在字符串中应用正则
var exp = 'alex3714'
exp.match(/\d/)    //只匹配从左到右的第一个
exp.match(/\d/g)   //匹配所有符合规则的 返回一个数组
var exp2 = 'Alex is a big sb'
exp2.match(/a/) //只匹配小写a
exp2.match(/a/i) //i表示不区分大小写 A也会被匹配出来
exp2.match(/a/ig) //不区分大小写并匹配所有

exp.search(/正则表达式/i) //不区分大小写,从exp字符串中找出符合条件的子串的第一个索引位置
exp.split(/正则表达式/i,n) //不区分大小写,根据正则切割,返回前n个结果
exp.replace(/正则/gi,'新的值') //i表示不区分大小写,g表示替换所有,将符合正则条件的内容替换成新的值

小问题1
var reg2 = /\d/g     //正则表示要匹配多个值
reg2.test('a1b2c3')  //多次test会的到true true true false 继续test会循环之前的结果

小问题2
var reg3 = /\w{5,10}/
reg3.test() //如果什么都不写,那么默认test中传递undefined参数,刚好可以符合9位字符串的规则
正则用法

math对象

面向对象(了解)

function Student(name,age){
    this.stu_name = name
    this.stu_age  = age
}
Student.prototype.show = function(){
    console.log(this.stu_name,this.stu_age)
}
var stu = Student('alex',84) // 实例化
stu.stu_name  // 查看属性
stu.stu_age
stu.show()    // 调用方法

object.prototype.show = function(){
    console.log(this.stu_name,this.stu_age)
}
面向对象(了解)

数据类型之间的转换

string --> int

parseInt('123') 👉 123
parseInt('123abc') 👉 123
parseInt('abc') 👉 NaN  (not a number)

string --> float

parseFloat('1.233')  👉 1.233

float/int --> string

var n1 = 123;
var str1 = String(n1); 👉 '123'

var num = 234;
console.log(num.toString()) 👉 '234'

任意数据类型 --> Boolean

Boolean(数据)

运算符

赋值运算

=  +=  -=  *=  /=  %=

比较运算

> < >= <= 
== !=  不比较类型
===  !== 比较类型和值(常用)

算数运算符

+ - * / % ** 
++(自增) --(自减)
var a = 1
undefined
var b = a++    // a=2  b=1
var c = ++a    // a=3  c=3

逻辑运算符

&& 逻辑与  ||逻辑或  !逻辑非

true && true //true
true || false //true
!true        //false

流程控制

特点

  • 所有代码块都是用{}标识
  • 所有条件都是用()标识

条件判断

if (true) {
   //执行操作
}else if(true){
    //满足条件执行            
}else if(true){
   //满足条件执行        
}else{
  //满足条件执行
if语句
var gameScore = 'better';
switch(gameScore){
//case表示一个条件 满足这个条件就会走进来 遇到break跳出。如果某个条件中不写 break,那么直到该程序遇到下一个break停止
    case 'good':
    console.log('玩的很好')
    //break表示退出
    break;
    case  'better':
    console.log('玩的老牛逼了')
    break;
    case 'best':
    console.log('恭喜你 吃鸡成功')
    break;

    default:
    console.log('很遗憾')
}
case语句
var a = 1
var b =2
var c = a>b ? a:b  //如果a>b成立返回a,否则返回b
console.log(c)
三元运算符

循环语句

var i = 1; //初始化循环变量

while(i<=9){ //判断循环条件
    console.log(i);
    i = i+1; //更新循环条件
}
while循环
//不管有没有满足while中的条件do里面的代码都会走一次
var i = 3;//初始化循环变量
do{

    console.log(i)
    i++;//更新循环条件

}while (i<10) //判断循环条件
do while循环
方式一
for(var i = 1;i<=10;i++){
        console.log(i)
}
 
方式二
var arr = [1,2,3,4,5]
for (n in arr){
        console.log(n)
}
for循环

函数function

function 函数名(参数){
    函数体
    return 返回值
}
函数名(参数)
//注意 : 传递的参数可以和定义的个数不一样,但是不要这么写
//      返回值只能有一个
函数的定义与调用
//arguments伪数组
function add(){
    console.log(arguments);
}
add(1,2,3,4)

function add(a,b){
    console.log(arguments);
}
add(1,2,3,4)
伪数组
var add = function(){
    console.log('hello,world');
} 
//add()调用
匿名函数
(function(a,b){
    console.log(a,b)
})(1,2)
自调用函数

 

posted @ 2019-08-12 20:24  亚里士多缺德  阅读(133)  评论(0编辑  收藏  举报