前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js基本语法

js基本语法

作者头像
子舒
发布2022-06-09 13:53:11
2K0
发布2022-06-09 13:53:11
举报
文章被收录于专栏:子舒的个人博客

在学习js基本语法的过程中,把遇见的知识点和问题记录喜下来,以便未来复习和参考。

数据类型有:数据,字符串,数组,数字,布尔值等。

一、数据类型

1.number

2.布尔值

只有true和false两种,可以直接用true和false来表达,比如:

代码语言:javascript
复制
true;    //true
false;    //false
2>1;    //true
2>3;    //fasle

与 && 两者同时为true,运算结果为true

或 || 只要有一个为true,运算结果就是true

非 ! 当程序为true时,运算结果取反为false

代码语言:javascript
复制
var age = 15;
if(age >= 18) {
    alert('adult')
}else{
    alert('teenager')
}

age值是15,当age大于且等于18的时候浏览器弹出adult,反之弹出teenager

3.字符串

4.比较运算符

=====

当使用==进行比较的时候,一般会自动转换类型然后再进行比较

当使用===进行比较的时候,如果数据类型不一样,直接返回false,等到类型一致了,然后再进行比较

有一个特殊的number就是NaN,它不与任何值相等,包括它自己NaN

代码语言:javascript
复制
NaN === NaN    //false

5.nullundefined

null表示一个空值,0表示一个数值,''表示长度为0的字符串,但是null表示空

undefined表示未定义

但是区分两者意义不大,大多数还是在用nullundefined仅仅在判断函数参数是否传递的情况下有用

6.数组Array

[ ] ,表示一组按顺序排列的集合,其中的每个值称为元素

代码语言:javascript
复制
new Array(1,2,3)    //[1,2,3]

数组的索引

二、对象和变量

代码语言:javascript
复制
var person = {
    name: 'jack',
    age: 20,
    city: 'hangzhou'
}

person是对象变量,name: 'jack'这就是一个键值对,name是属性名,'jack'是属性

要获取一个对象的属性,用对象变量.属性,也就是person.name,结果是jack

代码语言:javascript
复制
person.name    //jack
person.age    //20

var是一个动态语言,就算var定义了x = 100,后面又有x = x+ 100,所以就变成了200,

代码语言:javascript
复制
var x = 100;
x = x+ 100;
console.log(x)    //200

假如用int来定义x,后面的x = x + 100就会报错

并且使用var定义的变量只会存在与该函数作用域,并不是默认的全局变量

而如果没有使用var,直接定义i = 100,变量i会被默认为全局变量

三、字符串

需要用到转义字符\

1.模板字符串

代码语言:javascript
复制
var name = '小明';
var age = 20;
var message = name + '今年' + age + '了';
//小明今年20了
var message = `${naem},你今年${20}了`
//ES6新增的语法,一样的结果

字符串不可改变

如果对字符串的某个索引赋值,不会报错,不会发生任何改变

代码语言:javascript
复制
var a = 'hello,world!'
a[0];    //h
a[0] = k;
console.log(a);    //结果为'hello,world!',不会发生改变

2.toUpperCase大写

他会返回一个新的字符串,把一个字符串全部变成大写

代码语言:javascript
复制
var a = 'hello';
a.toUpperCase();    //返回HELLO

3.toLowerCase小写

他会返回一个新的字符串,他会把一个字符串全部变成小写

代码语言:javascript
复制
var a = 'hello'
a.toLowerCase();    //HELLO

4.indexOf

他会返回指定字符串的索引,如果没有找到指定的字符串,则会返回-1

代码语言:javascript
复制
var a = 'hello,world!'
a.indexOf('world');    //6

5.substring

他会返回指定区间索引的字符串,包括前一个数,不包括后一个数

代码语言:javascript
复制
var a = 'hello,world!'
a.substrng(0, 5);    //hello

如果()里面只有一个数值,则从这个数值的索引开始直到结束,比如:

代码语言:javascript
复制
var a = 'hello,world!';
a.substring(6);    //返回world!

四、数组

数组Array可以包含任何类型的数据,并通过索引来访问每个数据

1.length属性

Array的长度可以用length属性来获取,它和索引不一样,从1开始计算

代码语言:javascript
复制
var arr = [1,2,3,'hello',null,true]
arr.length;    //返回6

并且通过改变length的值,可以改变数组的内容大小变化

代码语言:javascript
复制
var arr = [1,2,3,'hello',null,true]
arr.length;    //6
arr.length = 8;    //[1,2,3,'hello',null,true,undefined,undefined]
arr.length = 2;    //[1,2]

2.通过索引改变数组

Array可以直接通过索引修改对应的元素

代码语言:javascript
复制
var arr = [1,2,3]
arr[1] = 'hello'
console.log(arr);     //[1,'hello',3]

js允许直接通过索引改变数组的长度,不会报错,但是不建议这么做

3.indexOf

Array可以通过indexOf来搜索一个指定的元素的索引

代码语言:javascript
复制
var arr = [1,2,3,'hello']
arr.indexOf(1);    //0
arr.indexOf(3); //2

4.slice

slice属性与substring类似,后者是截取字符串的内容,slice是截取数组的内容,然后返回一个新的数组

如果有两个数值,包括前面的数值,不包括后面的数值;如果只有一个数值,则从它开始算起一直到结束

代码语言:javascript
复制
var arr = [1,2,3,4,5];
arr.slice[0,2];    //返回[1,2]
arr.slice[2];    //返回[3,4,5]

如果slice不指定数值,则返回数组的全部内容,可以利用这个特性复制一个相同的数组出来

代码语言:javascript
复制
var arr = [1,2,3];
var arr1 = arr.slice();
console.log(arr1);    //[1,2,3]
arr1 === arr;    //true

注意:两个数组相比都是false,就算数组内容一样也会false var arr = [1,2,3] var arr1 = [1,2,3] arr === arr1 //false

5.push和pop

push()向数组的末尾添加元素

pop()把数组的最后一个元素删掉

6.unshifth和shift

unshift()向数组的头部添加元素

shift()把数组的第一个元素删掉

7.sort

sort()可以对数组进行排序,会直接修改当前数组的元素位置,直接调用时,会按照默认的方式排序

代码语言:javascript
复制
var arr = [B,A,C]
arr.sort();
arr    //[A,B,C]

8.reverse

reverse()会把整个数组调个个,不是反向排序

代码语言:javascript
复制
var arr = [2,1,3]
arr.reverse();
arr;    //[3,1,2]

9.splice

这个属性是万能的方法,通过调用splice(),可以从指定的索引删除元素或者添加元素

五、条件判断

在js中,使用 if() {...} else {...}进行条件判断

代码语言:javascript
复制
var age = 22;
if(age>20) {
    // 如果age>20成立,执行该语句
    console.log('22>20')
}else {
    // 如果age>20不成立,则执行该语句
    conosle.log('22<20')
}

最终,控制台会打印出22>20,因为条件成立

执行的语句要用{}包裹起来,防止其他情况会报错

多条件判断语句

三个或者三个以上多判断语句,被称为多条件判断语句

代码语言:javascript
复制
var a = 10
if(a<10) {
    console.log('a<10')
}else if(a>20){
    console.log('a>10')
}else{
    console.log('10<=a<=20')
}

如果多个条件中都满足,则取第一个满足的结果,执行其代码,之后满足的自动忽略掉,所以在 进行条件判断的时候,不要重复判断情况

一个复杂的多条件判断语句

代码语言:javascript
复制
var height = parseFloat(prompt('请输入身高(m):'));
var weight = parseFloat(prompt('请输入体重(kg):'));
var bmi = weight/(height*height);
if(bmi < 18.5) {
    console.log('过轻')
}else if(bmi>18.5,bmi<25) {
    console.log('正常')
}else if(bmi>25,bmi<28){
    console.log('过重')
}else  if(bmi>28,bmi<32){
    console.log('肥胖')
}else{
    console.log('严重肥胖')
}

parseFloat可以解析一个字符串,并返回一个数字

六、循环

简单的运算可以手打出来

代码语言:javascript
复制
1 + 2 + 3
// 控制台输出 6 

但是几百次,几千次,几万次的运算无法手打,可以依靠循环语句来进行计算,为了让计算机能够进行成千上万次的运算

循环语句有两种for和while,他们有不同的用法,适应不同的情况

1. for循环

通过初始条件,结束条件和递增条件来循环执行语句块

代码语言:javascript
复制
var x = 0
var i
for(i = 1; i <= 1000; i++) {
    x = x + i
}

i = 1是初始条件,i从1开始算起 i<=是判断条件,满足就执行循环,不满足就退出循环 i++是递增条件,每次循环过后都是+1,当无数次后不满足了i<=1000,会跳出循环

2. 通过for语句遍历数组

代码语言:javascript
复制
var arr = ['apple', 'banana', 'oringen']
var x,i
for(i = 0; i <= arr.length; i++) {
    x = arr[i]
    console.log(x)
}

3. 用break终止for循环

代码语言:javascript
复制
var x = 0;
for (  ;  ;  ) { // 将无限循环下去
    if (x > 100) {
    console.log(x)
    break; // 通过if判断来退出循环
    }
    x ++;
}

4. for...in

可以把一个对象对属性循环遍历出来

代码语言:javascript
复制
var person = {
    name: 'jack',
    age: 20,
    city: 'beijing'
};
for(var i in person) {
    console.log(i)
    console.log(person[i])
}

var i in person会把person里面所有对属性遍历,然后通过console.log(i)可以把属性名打印出来,console.log(person[i])可以把属性值打印出来

如果对一个数组进行这样的操作,就可以把数组元素对索引打印出来,打印结果是字符串形式

5. while循环

while循环适用于忽视判断条件的情况,for适用于明确了初始条件和结束条件的情况

比如要计算1-100之间的寄数和,可以用while循环

代码语言:javascript
复制
var x = 0
var n = 99
while (n > 0) {
    x = x + n
    n = n - 2
}
x

在变量内部,n不断自减,直接n=-1,不满足判断条件,此时退出循环

6. do...while

do...while循环是先循环,然后再判断条件,所以不论条件是否满足,do...while至少循环一次,这是它与forwhile的区别

比如:

代码语言:javascript
复制
var n = 0
do{
    n = n + 1
}while(n > 1)
n;    //1

先定义n=0,然后执行n=n+1,所以n=1,再判断条件,当n>1的时候执行,不符合,退出循环,控制台输出n,结果为 1

七、Map和Set

1. Map

Map是一组键值对的结构,具有极快的查找速度

只要我们定义一个属性名和属性值对应的数组,就可以从这个数组里面通过name直接查找数据

代码语言:javascript
复制
var m = new Map([['jack', 95], ['Bob', 94], ['linda', 93]])
m.get('jack')

首先,要初始化一个Map数组

代码语言:javascript
复制
var m = new Map();    //空map
m.set('jack', 95)    //添加一个新的键值对        key-value
m.has('jack')        //检查是否存在 '            jack'key
m.get('jack')        //获取'jack'对应的数据        value
m.delete('jack')    //删除'jack'键值对            key-value
m.get('jack')        //undefined

一个key只能对应一个value,所以如果重复赋值的话,后面的数据会把前面的数据覆盖掉

代码语言:javascript
复制
var m = new Map();
m.set('Adam', 67);
m.set('Adam', 88);
m.get('Adam'); // 88

2. Set

set中值储存key,不储存value,而且在set中,key不能重复,如果重复了,会自动忽略掉重复

首先,创建一个空的set

代码语言:javascript
复制
var m = new Set()    //空set
m.add(1)            //添加一个key
m.delete(1)            //删除一个key
m    //控制台输入[ ]空数组,没有数据
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020 年 10 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、数据类型
    • 1.number
      • 2.布尔值
        • 3.字符串
          • 4.比较运算符
            • 5.null和undefined
              • 6.数组Array
              • 二、对象和变量
              • 三、字符串
                • 1.模板字符串
                  • 2.toUpperCase大写
                    • 3.toLowerCase小写
                      • 4.indexOf
                        • 5.substring
                        • 四、数组
                          • 1.length属性
                            • 2.通过索引改变数组
                              • 3.indexOf
                                • 4.slice
                                  • 5.push和pop
                                    • 6.unshifth和shift
                                      • 7.sort
                                        • 8.reverse
                                          • 9.splice
                                          • 五、条件判断
                                          • 六、循环
                                            • 1. for循环
                                              • 2. 通过for语句遍历数组
                                                • 3. 用break终止for循环
                                                  • 4. for...in
                                                    • 5. while循环
                                                      • 6. do...while
                                                      • 七、Map和Set
                                                        • 1. Map
                                                          • 2. Set
                                                          领券
                                                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档