Javascript 一天笔记
2019-12-21 本文已影响0人
一千零一夜
复习1
===完全相等。相当于is
&&||
!true
console.log(xx)相当于print
alert
prompt相当于input
var str = "my name is erol"
str.length //检测字符串长度
str.charAt(3) //'n'
str[3] //新增语法,一样‘n'
str.charCodeAt(3) //返回n的ASCII码
str.indexOf('e',3) //e从3开始找。相当于find
str.concat('刘','皇族') //"my name is erol刘皇族"
str.substr(1,4) //sb从1开始娶4个
str.replace('a','b')
str.split('*')
"a"+null == 'anull';"a"+1 == 'a1' //字符串和任何拼接都是字符串。
true + 1 == 2
null + 1 == 1 //null相对于0
undefined + 1 == NaN //不是数字
//只要不是相加,其它的运行符号会隐士转换
typeof 10 //number
typeof 'erol' //string
typeof true // boolean
typeof null //object
typeof a //undefined
123.toString() //一样
String(123) //一样,注意是大写
parseInt('1') //解析成整型
parseInt('1.23')//1 得到的是整数
parseFloat('3.14')
parseFloat('1.23px')//会自动去掉px
Number('12')
Boolean(xx)// '' 0 NaN null undefined 五大皆空
/只声明不赋值 不知道里面存的是啥 所以undefined 未定义
// 单行注释
/*多行注释*/
<!-- <input type="button" value="唐伯虎" onclick="alert('秋香姐')"> --> //1。行内式
<script>alert('沙漠骆驼');</script> ///2.内嵌式
<script src="my.js"></script> ///3。外部引用js资源
prompt('请输入您的年龄:'); // 这是一个输入框,相当于input
alert('计算的结果是');// alert 弹出警示框
console.log('我是程序员能看到的');// console.log 相当于print
var a = 010 //0 表示八进制-》十进制。默认计算机是十进制表示。
var b = 0xa // 0x 表示16进制--》十进制
//Number.MAX_VALUE,Number.MIN_VALUE
isNaN(123)//false
isNaN("erol")//true .isNaN: is not a num(不是一个数字)
1>5 && 2>1 //相当于py中的and
!2 //false。。!true
复习2
object类型[]和{}
if (3<5){
alert("erol")
}
/*=================================*/
if (3<5){
alert("erol")
}else{
alert('hi')
}
/*=================================*/
if (条件1){
}else if (条件2){
}else{
}
/*=================================*/
var a = 4>5 ? '对':'不对' //三元表达式
/*=============switch ...case语句====================*/
switch(条件){
case 1:xxx;
break;
case 2:xxx;
break;
default:
xxx;
}
/*=============for语句====================*/
for(var i=1;i<10;i++){
alert('你是混蛋,请点击确认');
if(xx){
break; //continue 、break和py一样
}
}
/*=============while语句====================*/
var num = 1 ;
while(num<=100){
console.log('好啊');
num++;
}
/*=============do while语句====================*/
var num = 1
do{
console.log('爱我吗?');
num++;
}while(i <= 10) //先执行再判断
复习3
arguments 相当于*kwargs
支持连等 var a=b=c
var arr = new Array(); //创建一个空数组
var arr = [] //同上 。相当于py中的 li=list()和li=[]
arr[1] //找不到元素返回:undefined。python早就报错了
var arr = new Array(2,3,4);
var arr = [2,3,4]
var arr = new Array(2) //创建两个空数组,长度为2.不是很鸡肋吗?
arr instanceof Array //判断arr是不是数组
Array.isArray(arr) //新语法。直接通过Array.方法
var arr = [1,2,3]
arr.push("a") //推一个进去,相当于append
arr.push('a','b','c') //腿多个进去
arr.pop() //无参数。弹最后的,和py一样
arr.unshift('x')
arr.unshift('x','y') //unshift在最前面加多个或者一个。py没有
arr.shift() //无参数,删除第一个。很另类。
arr.indexOf() //-1 .什么都不写返回-1
arr.indexOf('a') //返回元素索引号
arr.lastindexOf('a') //从最后面开始找
arr.join('*') //和py一样
arr.toString() //呵呵
arr.reverse()//翻转,arr.sort()排序
/*=============函数====================*/
function getSum(num1,num2){
console.log(num1,num2)
return xx
}
getSum(1,2) //正常
getSum(1,2,3) //正常,多余的它不要
getSum(1) //NaN 。总之就是不会报错
/*=============只有函数才有内置的arguments.是一个伪数组====================*/
function fn(){
console.log(arguments)
}
fn(1,2,3)
/*=============匿名函数====================*/
var fun = function(nums){
console.log(nums)
}
//关于作用域和python类同,就近原则
复习4*
{}里面的键用不用引号都行,py不允许
值必须是匿名函数
调用方式通过打点调用也行a.x,通过a['x']也行
构造函数,类似对象。关键字this如self,new xx()相当于实例化
python 里面的值竟然也可以是一个函数,但是不能打点调用
js的字典很像对象的调用方式
var ojb = {
name:"erol",
"age":22,
sayHi:function(){
console.log('hi~')
}
}
console.log(obj.name) //通过打点调用
console.log(obj['name']) //像py字典一样调用
console.log(obj.sayhi()) //还是打点调用好点
/*=============利用new Object()创建====================*/
var obj = new Object(); //[]是Array()
obj.name = "erol";
obj.age = 18;
obj.sayhi = function(){
cosole.log('hi~')
}
/*=============构造函数,类似对象====================*/
function (){
this.属性 = 值;
this.方法 = function(){}
}
//构造函数类似对象,神似函数,关键字this ,new
function Star(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
this.sing = function(song){console.log(song);}
}
var person1 = new Star('z3',10,'男'); //new一个对象,相当于实例化
console.log(person1.age)
person1.sing('伤不起')
复习5
遍历字典
//遍历字典
var obj = {
name:'erol',
age:22,
fn:function(){}
}
for(var i in obj){
console.log(i); //相当于拿到键
console.log(ojb[i]) //这才是取值
}
/*==============Math===================*/
Math.PI;
Math.max(2,3,4);
Math.abs(-1)
Math.floor(1.9)
Math.ceil(1.1)
Math.round(-1.2)
Math.random() //(0,1)
/*=============Date()对象必须通过new来实例化调用====================*/
var date = new Date()
console.log(date) //Sat Dec 21 2019 20:29:43 GMT+0800 (中国标准时间)
var date2 = new Date(2020,8,1) //常用
console.log(date2)
var date = new Date();
console.log(date.getFullYear()) //年
console.log(date.getMonth()) //月
console.log(date.getDate()) //日
console.log(date.getDay()) //星期几
console.log(date.getHours()) //时
console.log(date.getMinutes()) //分
console.log(date.getSeconds()) //秒
//网页最最常用,毫秒
date.valueOf()//同下,一样
date.getTime() //距离1970.1.1的毫秒数
//新语法
+new Date() //多了个+,也是最最常用的
Date.now() //总毫秒