欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

js入门

程序员文章站 2022-05-31 22:21:34
js Brendan(布兰登) Eich 轻量级的编程语言(ECMAscript5或6), 是一种解释性脚本语言(代码不进行预编译), 主要用来向HTML页面添加交互行为, 目前是互联网上最流行的脚本语言, 支持面向对象、命令式和声明式(如函数式编程)风格, JavaScript,他和Python一 ......

js

brendan(布兰登) eich

轻量级的编程语言(ecmascript5或6),
是一种解释性脚本语言(代码不进行预编译),
主要用来向html页面添加交互行为,
目前是互联网上最流行的脚本语言,
支持面向对象、命令式和声明式(如函数式编程)风格,

javascript,他和python一样是一门编程语言,而浏览器内置了javascript语言的解释器,所以javascript代码在浏览器上就可以运行,
dom,(document object model)是指文档对象模型,通过它,可以操作html文档的相关功能,例如:对标签内容进行删除和替换等(非重点),
bom,(browser object model)是指浏览器对象模型,通过他,可以操作浏览器相关的功能,例如:浏览器设置定时器,浏览器定时刷新页面。

三种js代码引入方式

1 head标签的script标签里面(alert('xx'), confirm('xx'))

2 body标签的script标签里面 (建议底部)

3 外部文件引入的方式来使用
创建一个.js结尾的文件,写上js代码
比如:

alert('are you ok?');

在想使用这个js代码的html文件中,body标签底部导入

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

js基础内容(会继续更新)

alert("daoyou");
confirm("daoyou?");

javascript语法规则

变量

变量定义 var a = 100;

var 变量名,,

变量声明,但没有赋值的时候,变量的值为undefined

数据类型

number 整数,浮点数

var n = 11;
var n2 = 11.11;

string 字符串

var a = 'abcdef';
var a = new string('ss');  

字符串操作

var s = 'hello'; 
索引取值:  s[1] -- 'e'     s.charat(4); -- 'o' : s.substring(1,3); -- "el"

获取长度:s.length;
移除两端空格: s.trim();   s.trimleft(); s.trimright();

boolean 布尔

var a = true;
var b = false;

undefined和null类型

undefined 变量声明了,但是没有赋值,此时这个变量是undefined类型
null : 变量不用了,就可以给变量赋值为null,--- object类型

array 数组

var names = [11,22,33];

数组常用方法

names[0]    // 索引,索引也是从0开始的

names.push(ele)       // 尾部追加元素
示例:a.push('xx');       --  [11, 22, 33, "xx"]
names.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)           // 指定位置删除元素
var names = [11,22,33];
names.splice(1,1,'xx','oo','asdf'); -- [11, "xx", "oo", "asdf", 33]

names.slice(start,end)          // 切片
示例:a.slice(1,3);    

names.reverse()             // 原数组反转
示例:a.reverse(); 

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()    (辣鸡)        // 对原数组进行排序  a.sort(compare); 升序排列

解决数组中数字排序的问题

a = [2,3,5,2,22,4,2,3,234,1]
function com(a,b){return a-b};    // 自定义排序规则   

a.sort(com);

当a-b大于0时,会交换数组中的这两个元素
一直交换直到返回值没有大于0的

字典

自定义对象object

javascript中其实没有字典类型,字典是通过对象object构造出来的

info = {
    name:'迪丽热巴',      
    "age":18
    1:123
}

var a = {username:'xx',password:'123'}; //键可以不加引号 
                                     // 键可以是数字,但取值时必须是info["1"]
var a = info['name']/a = info.name // 通过键取值必须加引号(info.name) 
info['age'] = 20            // 修改
info['gender'] = 'male'     // 新增
delete info['age']          // 删除

查看数据类型

typeof 变量名;
typeof n;   

注释

单行//

多行 /**/

流程控制

if判断

if (a == 1){       //判断条件写在小括号里面,大括号里面写条件判断成功后的代码内容
    console.log('1111');      (类似print)
}
else{
   console.log('222');
}

多条件判断

if(a > 1){
    // console.log('1111');
    // var hhhh = document.getelementbyid('d1');
    // hhhh.innertext = '彭于晏';
}else if(a<1){

    console.log('2222');
}else {
    console.log('3333');
}

运算符

比较运算

    > < == !=  >=  <=   ===  !==

var a = 2;
var b = '2';
a == b;  true  弱等于
a === b;  false  强等于
a != b;  false
a !== b;   true

算术运算

+  -  * / %   ++  --  
++ 自增 1  
-- 自减 1

var a = 2;
a++  先执行逻辑  +1
++a  先+1 再执行逻辑
简单示例:
    if (++a === 4){                 //(a++ === 3)
        console.log('xxx');}
    else{
        console.log('ooo');};

switch判断

用于判断等于某些值(只能放数字)

var num = 200;
switch(num++){
    case 10:
        console.log('未成年');
        break;
    case 18:
        console.log('成年');
        break;
    case 35:
        console.log('老年');
        break;
    case 100:
        console.log('....');
        break;
    default:
        console.log('太大了');};

异常捕获

try{
    console.log(xx);
}
catch(e){
    console.log(e);
}
finally{
    console.log('sssss');
}

循环

for循环

var names = ['老男孩', '肖峰', '吴超']

for(var i=0;i<names.lenght;i++){    js里for变例的i为索引
    console.log(i, names[i])
}



循环自定义对象--python字典
    for (var i in d){
        console.log(i,d[i]);     #不要用d.i来取值,没有 i 属性
    }

函数

普通函数

function f1(a,b){
    return a+b;
}
//   执行: f1(1,2) -- 3

function f1(a,b){
    return a,b;
};

f1(1,2);    //不能返回多个值:  2

匿名函数

一般用于当做参数使用
function (arg){
    return arg + 1;
}
——————————————————————————————

var a = function (a,b){
    console.log('xxx');
}

var d = {'xx':'oo','f':function (a,b){
    console.log('xxx');
}};
执行:d.f(1,2);    -------'xxx'

自执行函数

一般用于做数据隔离使用,因为js中是以函数为作用域,所以当js代码比较多时,通过自执行函数做数据隔离

(function () {
        alert('自执行函数!')
    })()

json

json.stringify 序列化

var info = {name:'alex',age:19,girls:['钢弹','铁锤']}
var infostr = json.stringify(info)
console.log(infostr) # '{"name":"alex","age":19,"girls":["钢弹","铁锤"]}'

json.parse 反序列化

//反序列化时键不能是数字且必须有双引号
var infostr = '{"name":"alex","age":19,"girls":["钢弹","铁锤"]}' 
var info = json.parse(infostr)
console.log(info)

应用场景:
网络中数据传输本质上是基于字符串进行,如果想要把一个js的对象通过网络发送到某个网站,
就需要对对象进行序列化然后发送。(ajax会经常使用)
各语言之间数据类型不一定互通,需要一个中间人(json)  python->json->...->json->java