JavaScript基础1(概述、数据类型、自定义对象、运算符、if判断、while、forEach、for in循环、(map、set集合遍历))

JavaScript语言基础

一、概述

1. 简述

  1. 简述:JavaScript(简称“JS”)作为开发Web页面的脚本语言而出名的,是一门世界上最流行的脚本语言,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格,学好JavaScript语言十分重要!!
  2. 历史:JavaScript在1995年由Netscape(网景通信公司)的Brendan Eich发明推出,在网景导航者浏览器上首次设计实现而成,最初将其脚本语言命名为LiveScript,因为Netscape与Sun公司合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。Ecma(欧洲计算机制造商协会)以JavaScript为基础制定了ECMAScript标准;最新版本已经到es6版本,但是大部分浏览器还只停留在支持 es5 代码上。

2. 引入JS代码的方法

  • 内部标签
<script>
   //代码内容
</script>
//不用显示定义type,也默认就是 javascript
<script type="text/javascript">
   //代码内容
</script>
  • 外部引入
<script src="test.js">  </script>

注意:
直接访问js代码,显示的是纯文本内容,可以通过域名加路径访问:

<script src="hhtp://ip/路径/文件名.js"></script>

二、基本语法

1. 数值

js不区分小数和整数,Number

1234      //整数123
1234.12   //浮点数123.1
1.23e45   //科学计数法
-1234     //复数
NaN       //not a number
Infinity  //表示无限大

2. 字符串

// 正常字符串我们使用  单引号,或者双引号包裹
'abcdefg'
"abcdefg"
\n; //换行
\t; //一个字符的空格
str.length; //字符串的长度
//多行字符串编写
var msg = 
    `hello
world
你好
世界`

大小写转换:

//这里是方法,不是属性了
student.toUpperCase()
student.toLowerCase()

字符串截取:

student.substring(1)   //从第一个字符截取到最后一个字符
student.substring(1,3) //截取第一个第二个字符,区间表示[1,3)

3. 布尔值

true;
false;

4. 运算符

算术运算符

+	//加法	
-	//减法	
*	//乘法	
/	//除法	
%	//余数	
++	//自增	
--	//自减

逻辑运算符

&&   //和运算符:两个都为true,结果为true
||   //或运算符:一个为true,结果为true
!    //非运算符:true为false,false为true

赋值运算符

=    x=y  //将y值赋给x
+=   x+=y //即:x=x+y
-=   x-=y //即:x=x-y
*=   x*=y //即:x=x*y
/=   x/=y //即:x=x/y
%=   x%=y //即:x=x%y

用于字符串:把两个或多个字符串变量连接起来,使用 + 运算符
s1=“Hello”;
s2=“World”;
s3=txt1+txt2;
s3结果为:HelloWorld
若需要给连接后的字符串加上空格,需要将空格插入某个字符串中:
s1="Hello ";
s2=“World”;
s3=txt1+txt2;
s3结果为:Hello World

比较运算符

==	  //等于	  var x=5; x==8;  结果为false
===	  //绝对等于(值和类型均相等) var=5; x==="5"  结果为fasle  var=5; x===5;  结果为true
!=	  //不等于
!==	  //不绝对等于(值和类型有一个不相等,或两个都不相等)

注意:
NaN===NaN,这个与所有的数值都不相等,包括自己,只能通过 isNaN(NaN) 来判断这个数是否是 NaN

5. 数组

Java的数值必须是相同类型的对象,js中不需要这样

//Array可以包含任意的数据类型
var arr = [1,2,3,4,'hello',null,true];
new Array(1,12,3,4,4,5,'hello');
var arr = [1,2,3,4,5,6];
arr.length //数组长度
6
arr.indexOf(2) //通过元素获得下标索引
1
arr.slice(1,3) //截取arr下标1,2之间的元素,返回一个新数组,类似于String中的substring
[2,3]
push() //压入到尾部
pop()  //弹出尾部的一个元素

unshift() //压入到头部
shift()   //弹出头部的一个元素

arr.sort()//数组排序 不区分大小写
var arr2 = ["B", "C", "A"]
arr2.sort() 
["A", "B", "C"]

arr.reverse() //数组反转
var arr3 = ["A", "B", "C"]
arr3.reverse()
["C", "B", "A"]

concat() //连接两个或多个字符串
var arr4 = ["C", "B", "A"]
arr4.concat([1,2,3])
["C", "B", "A", 1, 2, 3] //concat()并没有修改数组,只是会返回一个新的数组
join()  //连接符
var arr5 = ["C", "B", "A"]
arr5.join('-')
"C-B-A"

//多维数组
var arr6 = [[1,2],[3,4],["5","6"]];
arr6[1][1] //取值
4

取数组下标:产生越界,就会出现 undefined

7. 自定义对象

var person = {
    name: "张三",
    age: 20,
    tags: ['aaa','bbb','ccc','...']
}
//取对象的值
person.name
张三
//对象赋值
person.name = "李四"
//判断对象属性是否存在
'age' in person
true
//判断一个属性是否是这个对象自身拥有的
person.hasOwnProperty('age')
true
//删除对象的属性
delete person.name

8. 严格检查格式(strict)

预防JavaScript的随意性导致产生的一些问题(前提:IEDA 需要设置支持ES6语法)

'use strict'   //必须写在JavaScript的第一行
//当你定义变量i,使用严格检查格式时,下面的代码中的i会变红,局部变量建议都使用 let 去定义
i = 1;

9. 流程控制

9.1 if 判断
var age = 3;
if (age>3){ //第一个判断
   alert("aaa"); //alert: 弹窗
}else if(age<5) { //第二个判断
   alert("bbb");
}else {  //否则
   alert("ccc");
}
9.2 while 循环
while(判断条件){

}

do{
    
}while(判断条件)
9.3 for 循环
for (let i = 0; i < 100 ; i++) {
    console.log(i)
}
9.4 forEach 循环
var arr = [1,2,3,4,5,6,7,8]
      arr.forEach(function (value) { //函数 function
          console.log(value)
      })        
9.5 for in 循环
var arr = [1,2,3,4,5,6,7,8]
for (var num in arr){
        if (arr.hasOwnProperty(num)){
             console.log(arr[num])
           }
      }

三、ES6 的新特性

map&set

//map:通过键获得值
        var map = new Map([['tom',100],['jack',90],['haha',80]]);
        var name = map.get('tom'); //通过key获得value!
        map.set('admin',123456);  //新增或修改!
        map.delete("tom"); //删除!
        //遍历(迭代)  let of
        for (let x of map){
            console.log(x)
        }

//Set:无序不重复的集合
        var set = new Set([1,2,3,4,1])
        //Set(4) {1, 2, 3, 4}  //四个元素 分别为{1, 2, 3, 4}
        set.add(2);     //添加!
        set.delete(1);  //删除!
        //Set(3) {2, 3, 4}     //三个元素 分别为{2, 3, 4}
        set.has(3);     //是否包含某个元素!
        //true
        //遍历 let of
        for (let x of set) {
            console.log(x)
        }

//下篇再见…谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值