JavaScript学习笔记

    技术2022-07-21  84

    目录

    引入JavaScript:定义变量流程控制控制台的使用数据类型字符串布尔值逻辑运算比较运算符浮点数问题:null和undefined数组对象 Map和Set JavaScript是一门世界上最流行的脚本语言 与java语言没有联系 需要精通

    引入JavaScript:

    1.在HTML中写

    标签中写入JS代码 <script> //提示框 alert("hwllo world"); </script>

    2.外部引入 创建JS文件并引入

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

    标签必须成对出现,不可以用自闭和标签!!!

    定义变量

    变量类型都为 var 值可以为数字型、字符串等等所有java常见类型;

    var num=1; var string="songyi";

    JS结尾可以不带分号,但是一般都带上规范一点。且严格区分大小写!!

    流程控制

    if,whlie,for与Java无区别

    if(1<2){ alert("true"); }else{ alert("true"); } //可嵌套

    forEach循环遍历数组

    let age = [1,13,4,24,541,12,46,463] //函数 age.forEach(function(value){ console.log(value) });

    for in循环 输出的是数组的下标,而不是内容

    for(var num in age){ if(age.hasOwnProperty(num)){ console.log("存在") console.log(age[num]) } }

    for of循环

    输出数组的值

    支持Set和Map的输出

    let arr = [1,2,3] for(let x of arr){ console.log(x) }

    控制台的使用

    在如图选项中可以输入JS语句执行 常用的语句:

    打印变量:

    console.log(变量名)

    断点

    数据类型

    数字,文本,图片,视频,音频 JS不区分小数和整数。

    变量 变量名不能用数字开头

    Number

    123 //整数123 123.1 //浮点数 1.123e3//科学计数法 -99 //负数 NaN //not a number 不是数字 Infinity//表示无限大

    字符串

    'abc' "abc"

    注意转义字符 \n ` \t \u4e2d

    多行字符串编写 使用`包裹

    var string=` 你好 hello wow `

    模板字符串

    let name="songyi"; let msg=`你好!${name}` //注意是`不是单引号

    常用方法 .length 字符串长度 .toUpperCase() 转大写 .toLowerCase() 转小写 .indexof(“a”) 查询某字符在字符串的第几个位置出现返回值为数字 .substring(1,3) 从字符串的第二个字符到第三个字符截取出来(包含前边不包含后边)

    布尔值

    true false

    逻辑运算

    &&|| 或 ! 非

    比较运算符

    == //等于,当类型不一样,但是值一样时,也会判断为ture === //绝对等于,类型一样,值一样才会判断为ture tips: NaN与所有的数值都不相等,包括自己。 通过isNaN(数据)判断这个值是不是NaN

    浮点数问题:

    避免使用浮点数

    null和undefined

    null 空 undefined 未定义

    数组

    JS中数组内对象类型可以不同

    var a=[1,2,3,"abc",null,ture]

    数组长度可变,当长度大于数组内容时,后边的值为空,即未定义 当长度赋值小于含有元素个数,多余的元素会丢失

    array.length=2; 给数组array定义长度为2

    .indexof(“a”) 通过元素获得下标

    .slice(2,4) 截取数组的一部分,返回一个新的数组类似于字符串的 substring

    .push(“a”,“b”) 在数组末尾添加新元素

    .pop() 弹出数组末尾的元素

    .unshift(“a”,“b”) 在数组头部添加元素

    .shift("") 弹出数组头部元素

    .sort() 排序

    .revers 元素顺序翻转

    .concat([1,2,3]) 拼接数组(并没有改变原数组,只是返回了一个新的数组)

    对象

    若干个键值对 属性间用逗号隔开,最后一个属性后不加逗号

    //JAVA Person person = new person(1,2,3,4,5); var person{ name:"songyi", age:20, tags:['js','java','web'] } //取出对象的值 person.name person.age person.tags[]

    使用一个不存在的对象属性,不会报错,只会未定义

    可以动态的删减和添加属性

    删除 delete person.name //返回布尔值 添加 person.haha = "haha"

    判断属性值是否在对象中 缺陷:父类所拥有的属性名他也能查询到

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

    判断属性是否是自身拥有的

    person.hasOwnProperty("age")

    Map和Set

    ES6的新特性 Map

    //Map集合 let map = new Map([['tom','10'],['jarry','90'],['songyi',100]]); let name = map.get("songyi");//通过key获得value //输出结果为100 map.set('admin',60);//添加或修改 map.delete('tom');

    Set:无序不重复的集合

    let set = new set([3,2,3,2,2,3,3]);//可以去重 //输出结果为[3,2] set.add(2);//添加 set.delete(2);//删除 set.has(2);//判断set中是否有某个元素 //

    iterator

    Processed: 0.009, SQL: 9