JavaScript知识点(上)

简介: JavaScript知识点

JavaScript知识点


一.概述


1.什么是JavaScript


  • JavaScript是一门脚本语言


  • Java,JavaScript的关系:无半毛钱关系

注意:后端人员要精通JavaScript


2.JavaScript的历史


https://www.cnblogs.com/ghost-xyx/p/4035615.html


3.标准(ECMAScript)


https://baike.baidu.com/item/ECMAScript/1889420?fr=aladdin


  • 最新版本为es6版本,但是现在大部分浏览器还只支持es5代码!


二.入门


1.js的引入


//内部标签
<head>
    <meta charset="UTF-8">
    <title>js</title>
    <!--script标签内写js代码    -->
    <script>
        alert('hello,javascript');
    </script>
</head>


外部引入
//注意:script标签必须成对出现
//script标签必须成对出现
<script src="js/js1.js"></script>//写在html中head内部
alert('hello,javascript');//写在js文件中


  • 弹窗标签


alert('hello,javascript');


2.基本语法


<!--JavaScript严格区分大小写-->
    <script>
        //定义变量
        var score=88;
        //alert(score);
        //2.条件控制
        if(score>60 &&score<70){
            alert("60-70");
        }else if(score>70&& score<80){
            alert("70-80");
        }else{
            alert("other");
        }
        //console.log(score)    在浏览器的控制台打印变量!
    </script>


3.数据类型


数值,文本,图形,音频,视频…


number


js不区分整数和小数


123  //整数
123.4  //浮点数
1.23e4  //科学计数法
-99  //负数
NaN  //not a number
Infinity  //无限大


字符串


‘a’ “abc”


布尔值


true , false


逻辑运算符


&&
||
!


比较运算符(重要)


=
==  等于(类型不一样,值一样,也会判断为true)
===  绝对等于(类型一样,值一样,结果true)


  • JS坚持不要使用==比较


须知:


  • NaN===NaN,NaN与所有的数值都不相等,包括自己


  • 只能通过isNaN(NaN)来判断这个数是否是NaN



浮点数问题:


console.log((1/3)===(1-2/3))


尽量避免使用浮点数进行运算,存在精度问题


console.log(Math.abs(1/3-(1-2/3))<0.000000001)


null和undefined


  • null 空


  • undefined 未定义


数组


js中的数值不一定要是相同类型的对象


var arr=[1,2,3,'hello',null,true];
new Array(1,2,3,'hellojs',null,true);


取数组下标:如果越界了,就会undefined


对象


  • 对象是大括号,数组是中括号


  • 每个属性之间使用逗号隔开,最后一个不需要


var Person={
            name:"chen",
            age:18,
            tags:['js','java',2,5]
        }


取对象值


person.name
>"chen"
person.age
>18


4.严格检查模式


<!--
    前提:IDEA需要设置支持ES6语法
    'use strict';严格检查模式,预防JavaScript的随意性导致产生一些问题
    必须写在JavaScript的第一行!
    局部变量建议都使用let去定义
-->
    <script>
        'use strict';
        //全局变量
        let i=1;
        //ES6   let
    </script>


三.数据类型


1.字符串


  • 正常字符串使用单引号或者双引号包裹


  • 注意转义字符\


\'
\n
\t
\u####  Unicode字符
\x41    Ascll字符


  • 多行字符串编写


//tab键上的`
var msg=`
hello,javascript,你好呀
`


  • 模板字符串


let name = "chen_study";
let age = 18;
let msg = `你好呀,${name}`


  • 字符串长度


console.log(str.length)


  • 字符串不可变性


  • 大小写转换


//注意:这里是方法
student.toUpperCase()
student.toLowerCase()


  • 返回某个字符位置


student.indexOf('u')


  • 截取字符串


[)
student.substring(1)//从第一个字符串截取到最后一个字符串
student.substring(1,3)//[1,3)


2.数组


  • 长度


arr.length


注意:给arr.length赋值,数组大小会发生变化,如果赋值过小,元素就会丢失


  • indexOf,通过元素获得下标索引


arr.indexOf(2)


字符串的"1"和数字1是不同的


  • slice() 截取Array的一部分,返回一个新数组,类似于String中substring


  • push(),pop() 尾部


push:  压入到尾部
pop:  弹出尾部的一个元素


  • unshift(),shift() 头部


unshift:  压入到头部
shift:    弹出头部的一个元素


  • 排序sort()


arr.sort()


  • 元素反转reverse()


arr.reverse()


  • 拼接concat()


arr.concat([1,2,3])


注意:concat()并没有修改数组,只是会返回一个新的数组


  • 连接符join


打印拼接数组,使用特定的字符串连接


arr.join('-')


  • 多维数组


arr = [[1,2],[3,4],["5","6"]];
arr[1][1] //4


3.对象


若干个键值对


var 对象名 = {
    属性名:属性值,
    属性名:属性值,
    属性名:属性值
}
//定义了一个person对象,他有四个属性
var person = {
    name:"chen",
    age:18,
    email:1234567@qq.com,
    score:100
}


Js中对象,{…}表示一个对象,键值对描述属性,多个属性之间使用逗号隔开,最后一个属性不加逗号!


  • 对象赋值


Person.name = "hu"
"hu"
person.name
"hu"


  • 使用一个不存在的对象属性,不会报错!undefined


person.a
undefined


  • 动态的删减属性,通过delete删除属性


delete person.name
true


  • 动态添加属性,直接给新属性添加值即可


person.a="a"
"a"


  • 判断属性值是否在这个对象中,xxx in xxx(js中所有的键都是字符串,值是任一对象!)


'age' in person
true
//继承
'toString' in person
true


  • 判断一个属性是否是这个对象自身拥有的hasOwnProperty()


person.hasOwnProperty('toString')
false
person.hasOwnProperty('age')
true


4.流程控制


  • if判断


  • 循环


while


do while


for


forEach


var age = [1,2,3,4,5,6,86,345]
age.forEach(function(value){
    console.log(value)
})


for…in


5.Map和Set


ES6的新特性


  • Map


//ES6 Map
var map = new Map([['xiaoming',100],['zhangsan',60]]);
var name = map.get('xiaoming');//get
console.log(name);//100
map.set('admin',90)//set新增
map.delete('xiaoming')//删除


  • Set(无序不重复的集合)


var set = new Set([1,1,2,2,3,3]);//1,2,3  set会去重
set.add(4)  //1,2,3,4  add增加
set.delete(4)  //1,2,3  delete删除
console.log(set.has(3));  //是否含某个元素


6.iterator


  • 遍历数组


ES6新特性


//通过for of/ for in下标
var arr=[1,2,3]
for(var x of arr){
    console.log(s)
}


  • 遍历Map


var map = new Map([['xiaoming',100],['zhangsan',60]]);
for(let x of map){
    console.log(x)
}


  • 遍历Set


var set = new Set([3,4,5]);
for(let x of set){
    console.log(x)
}


相关文章
|
9月前
|
JavaScript 前端开发 API
|
9月前
|
JavaScript 前端开发 CDN
总结 vue3 的一些知识点:Vue.js 安装
总结 vue3 的一些知识点:Vue.js 安装
|
9月前
|
JavaScript
总结 vue3 的一些知识点:​Vue.js 条件语句​
总结 vue3 的一些知识点:​Vue.js 条件语句​
|
3月前
|
自然语言处理 JavaScript 前端开发
[JS]知识点
本文介绍了JavaScript中的多个重要知识点,包括ES6、严格模式、类与对象、解构、跨域问题及入口函数等。文章通过详细示例和推荐的外部资源,帮助读者更好地理解和应用这些概念。内容持续更新中,适合初学者和进阶开发者参考。
40 2
[JS]知识点
|
3月前
|
JavaScript 前端开发 中间件
JS服务端技术—Node.js知识点
本文介绍了Node.js中的几个重要模块,包括NPM、Buffer、fs模块、path模块、express模块、http模块以及mysql模块。每部分不仅提供了基础概念,还推荐了相关博文供深入学习。特别强调了express模块的使用,包括响应相关函数、中间件、Router和请求体数据解析等内容。文章还讨论了静态资源无法访问的问题及其解决方案,并总结了一些通用设置。适合Node.js初学者参考学习。
65 1
|
3月前
|
存储 JavaScript 前端开发
JS的ES6知识点
【10月更文挑战第19天】这只是 ES6 的一些主要知识点,ES6 还带来了许多其他的特性和改进,这些特性使得 JavaScript 更加现代化和强大,为开发者提供了更多的便利和灵活性。
49 3
|
4月前
|
存储 JSON JavaScript
JS知识点
JS知识点
54 3
|
4月前
|
JavaScript 前端开发 Java
【javaScript数组,函数】的基础知识点
【javaScript数组,函数】的基础知识点
49 5
|
5月前
|
JavaScript 前端开发 Java
JavaScript 类知识点概览
概览JavaScript中类的知识点,包括类的定义和实现、添加方法和get/set方法、类的继承和静态方法的使用。通过学生类和人员类的例子,演示了类的构造器、方法定义、继承关系和静态方法的调用。
JavaScript 类知识点概览
|
4月前
|
前端开发 JavaScript
JavaScript 知识点总结
JavaScript 知识点总结
44 0

热门文章

最新文章