注:javascript和java毫无关系
js(简称)–javascript直译型脚本语言
javascript的标准是ECMAscript,截至 2012 年,所有浏览器都完整的支持ECMAScript 5.1,旧版本的浏览器至少支持ECMAScript 3 标准。
ECMAScript,文档对象模型(DOM),浏览器对象模型(BOM)
ECMAScript:描述了语言的语法和基本对象,是JavaScript的核心
DOM:描述处理网页内容的方法和接口
BOM:描述与浏览器进行交互的方法和接口
ECMAscript5 和ECMAscript56
两个大方面:直接写入html文件中;或者以script文件方式导入
直接写入html文件中三种方式:
1.直接在html的head标签中创建script标签:<script></script> 2.在html文件的body中创建script标签:<script></script> 3.在html文件的尾部的body和html之间创建script标签:<script></script> 也能在最下面的html外面创建,虽然不报错,但是不规范以script文件方式导入的三种方式:
1.直接在html的head标签中引入script文件:<script src="js文件路径"></script> 2.在html文件的body中引入script文件:<script src="js文件路径"></script> 3.在html文件的尾部的body和html之间引入script文件:<script src="js文件路径"></script> JavaScript文件的后缀名是.jsnumber类型(整数,浮点数)
查看数据类型:typeof (参数);或者typeof 参数;
var n = 11; var n2 = 11.11; js代码注释 // js代码 查看数据类型 typeof 变量名; typeof n; -- number类型 变量声明,但没有赋值的时候,变量的值为undefinedstring类型(字符串)
定义方式有两种:直接定义和实例化
直接定义的typeof类型是string;实例化的typeof类型是object
// 1、定义: var a = 'alexsb'; var a = new String('ss'); typeof a; -- "object" // 2、字符串的操作方式 var s = '诱色可餐徐茂洁'; // 索引取值: s[1] -- '色' // 移除两端空格: s.trim(); s.trimLeft(); s.trimRight(); var s2 = ' hello '; s2 " hello " s2.trimLeft(); "hello " s2.trimRight(); " hello" s2.trim(); "hello" // 索引取值 var value = name.charAt(index) // 根据索引获取字符 示例: var s = 'hello'; -- s.charAt(4); -- 'o' // 切片 var value = name.substring(start,end) // 根据索引获取子序列,切片 示例: s.substring(1,3); -- "el" 左包右不包 // 字符串拼接: + s1 "hello world" s2 " hello " s1 + s2 "hello world hello " 布尔类型(boolean类型) var a = true; var b = false; typeof a; -- "boolean" undefined和null类型 undefined 变量声明了,但是没有赋值,此时这个变量是undefined类型 null : 变量不用了,就可以给变量赋值为null, --- object类型 -- 和python的None一样 数组(array) var name = [11,22,33]; typeof name; -- "object" name.length -- 得到数组长度 数组常用方法: names[0] // 索引,索引也是从0开始的 names.push(ele) // 尾部追加元素 示例:a.push('xx'); -- [11, 22, 33, "xx"] var ele = names.obj.pop() // 尾部移除一个元素 示例:a.pop(); -- [11, 22, 33] names.unshift(ele) // 头部插入元素 示例:a.unshift('ssss'); -- ["ssss", 11, 22, 33] var ele = obj.shift() // 头部移除一个元素 示例:a.shift(); -- [11, 22, 33] names.splice(index,0,ele) // 在指定索引位置插入元素 names.splice(从哪删(索引),删几个(个数),删除位置替换的新元素(可不写,可写多个)) names.splice(index,1,ele) // 指定索引位置替换元素 names.splice(index,1) // 指定位置删除元素 示例: a.splice(1,2) -- [11, 22, 33] a.splice(1,1,'xx','oo','asdf'); -- [11, "xx", "oo", "asdf", 33] names.slice(start,end) // 切片 示例:a.slice(1,3);-- [22, 33] names.reverse() // 原数组反转 示例:a.reverse(); -- [44, 33, 22, 11] names.join(sep) // 将数组元素连接起来以构建一个字符串 示例: var a = ['ni','hao','ma',18] a.join('+'); -- "ni+hao+ma+18" names.concat(val,..) // 连接数组 示例: var a = [11,22]; var b = ['aa','bb'] var c = a.concat(b); c -- [11, 22, "aa", "bb"] names.sort() // 对原数组进行排序 很尬! 需要自己定义规则: var l4 = [11.11,2,4.5,33]; function compare(a,b){ return a - b; 当大于0时,两个数据换位置 }; 使用: l4.sort(compare); 升序排列 自定义对象(dict) // 声明 info = { name:'武沛齐', "age":18 } var a = {username:'xx',password:'123'}; //可以不加引号 typeof info; "object" // 常用方法 var val = info['name'] // 获取,通过键取值必须加引号, info.name 也是可以的 info['age'] = 20 // 修改 info['gender'] = 'male' // 新增 delete info['age'] // 删除算数运算符
+ - * / % ++ -- ++ 自增 1 -- 自减 1 var a = 2; a++ 先执行逻辑 在+1 ++a 先+1 在执行逻辑 简单示例: if (++a === 4){ console.log('xxx'); } else{ console.log('ooo'); };js的基础数据类型都有布尔值属性, []–false 0,{},’’,undefined,null,NaN
字符串转数字: var a = '11'; parseInt(a); var a = '23abc'; parseInt(a); 23 var a = '11.11'; parseFloat(a) -- 转换为浮点型 var a = 'asdfabc'; parseInt(a); -- NaN -- not a number typeof NaN; -- "number" NaN === NaN; -- false NaN == NaN; -- false 数字转字符串 var b = 20; String(b);