| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> javascript学习 -> 正文阅读 |
|
[JavaScript知识库]javascript学习 |
引入JavaScript<script>标签通常放在head标签里,也可以放在body里 1.内部标签 <script> //写java代码 </script> 2.外部引入 在写一个js文件夹写一个qj.js
基本语法
数据类型数值,文本,图形,音频,视频 变量不能数字开头 numberjavascript不区分小数和整数,都用number NaN表示这不是一个数 Infinity表示无限大 字符串'sss'? "sss" 布尔值true? false 逻辑运算&&两个为真结果为真 ||一个为真结果为真 比较运算(这是和java不一样的地方,要用===比较)=赋值 ==等于(类型不同,值相同也会true) ===绝对等于(必须要类型和值都相等) 须知:1.NaN和任何数值都不相等,包括自己 2.只能通过isNaN(NaN)来判断这个数是否为NaN 浮点数问题:尽量避免使用浮点数进行运算,存在精度问题 null和undefined空和未定义 数组js中数组不需要同一类型,和java不一样
通过类似console.log(i[0])来输出,下标越界会输出undefined 对象对象定义用{}大括号,数组用[]中括号 定义对象
取对象的值 person.name 严格检查模式
数据类型字符串1.可以使用单引号或者双引号
2.转义字符 \ \' \n换行 \t \u####Unicode字符 \x41? ?Ascll字符 3.多行字符串编写 使用~的引号
4.模板字符串 java 里的字符串拼接 在js里可以用下面的形式实现
5.字符串长度 str.length 6.字符串不可变 对字符串的某个下标赋值并没有改变原来的字符串 7. 大小写转换 str.toUpperCase() str.toLowerCase() 8.获取指定的下标 str.indexof('t') 9.通过下标截取字符串[) str.substring(1)表示截取下标为1后的所有字符串 str.substring(1,3)表示截取下标为1到2的字符串,取不到3 数组Array可以包含任意的数据类型 1.长度 arr.length 注意假如对arr.length赋值,数组大小可变 2.arr.indexOf通过数组内的元素获得下标索引 arr.indexOf(s) 3.slice() 截取数组的一部分,返回一个新数组[)(和字符串截取的substring类似) arr.slice(3)表示截取下标为3后的所有元素,返回一个新数组 arr.slice(3,5)表示截取下标为3到5的字符串,取不到5,返回一个新数组 4.push(),pop(),unshift(),shift() arr.push()能往数组里添加元素,从尾部加 arr.pop()从数组去掉元素,从尾部去 arr.unshift()能往数组里添加元素,从头部加 arr.shift()从数组去掉元素,从头部去 5.排序sort() arr = ["s", "dc", "ds", 2] 6.元素翻转 arr.reverse()就是变成倒序 7.concat() arr.concat([1,2,3])这个方法可以将arr和这个新的数组拼接起来形成新数组 注意:不会改变原来的arr数组 8.连接符join arr.join('-')打印拼接数组,使用特定的字符串连接 9.多维数组 arr = [[1,2],[3,4],[5,6]] 对象若干个键值对组成 对象的每个属性都是字符串,值是任意 var person={ ????????name: "dcadvsd", ????????age: 12, ????????tags: ["dg", "thd"] } 1.对象赋值 person.name="asdasd" 2.动态的删减属性,通过delete delete person.name 动态 的添加,直接写新属性并添加值即可‘ person.xinshuxin="fdsdfs" 3.判断属性值是否在这个对象中 'age'? in? person 存在会返回true 'toString' in? person 这个是父类的方法,一定是true 4.判断一个属性是否是对象自身的属性hasOwnProperty('age') 流程控制foreach循环
for? in循环输出数组
Map和Setmap:
set:无序不重复的集合
iterator遍历数组
遍历map
遍历set
函数定义函数绝对值函数 方式一 function abs(x) { //如果类型不是number,抛出异常 if (typeof x !== 'number') { throw 'not a number'; } if (x>=0){ return x; }else{ return -x; } } 方式二 var abs = function(x) { //如果类型不是number,抛出异常 if (typeof x !== 'number') { throw 'not a number'; } if (x>=0){ return x; }else{ return -x; } } 匿名函数,但是把结果赋值给对象 arguments代表传递进函数的所有参数,是一个数组 var abs = function(x) { for(let i=0;i<arguments.length;i++){ console.log(arguments[i]); } if (x>=0){ return x; }else{ return -x; } } 用arguments可以将所有参数输出,但是x始终代表第一个参数 rest获取除了已经定义的参数之外的所有参数,放在一个数组里 function aaa(a, b, ...rest) { console.log(rest); } 只会打印出除了定义的参数以外的参数,并且放在一个数组里 ? 变量的作用域假设在函数体内声明,则在函数体外不可以使用? ? 假设一个函数定义了一个变量,在这个函数内嵌套了一个函数,内部的函数同样定义了一个同名的变量h3。分别在内外函数打印变量。 函数查找变量首先从自己的函数内找,找不到才去外部包括的函数去找同名变量。 function aa() { let x = 2; function bb() { let x = 1; console.log("bb" + x); } console.log("aa" + x); bb(); } 全局对象window var x = 111; alert(x); alert(window.x);//默认所有的全局变量,都会自动绑定在window对象下 window.alert(window.x);//alert函数也是window对象下的一个变量 JavaScript只有一个全局作用域,任何变量(函数也可以视为变量),假设没有在函数作用范围内被找到,就会向外查找,如果在全局作用域都没找到,就报错RefrenceError? 冲突 由于所有的全局变量都绑定到window上,如果有多个js文件,使用了相同的全局变量就会发生冲突。 要将自己的代码全部放入自己定义的唯一全局变量中 局部作用域 function aa() { for (var i = 0; i < 100; i++) { console.log(i) } console.log(i); } 用var来定义i,发现i在循环外还能使用 接下去用let来定义i function aa() { for (let i = 0; i < 100; i++) { console.log(i) } console.log(i); } 发现报错,说明let定义的是局部的变量,建议使用let 定义常量 const a = "3.14";//只读变量,不能被修改 方法var xu = { name:"liang", birth: 2000, //方法 age: function () { var now = new Date().getFullYear(); return now-this.birth; } } 调用方法xu.age() ? |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 0:17:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |