望JS大神解答这个疑问,function f(){ return f }

使用new f()过后,new f() instanceof f 为false?如果将return 改为return this;这判断就为true了(这儿能理解);为什么改成return f就为false呢?它返回的也是函数本身啊。

1个回答

return f返回的是函数定义,而return this返回的则是当前对象的指针。

zgxjj
留校_察看 请问这个函数定义是指?
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
见鬼,太奇怪了,求大神解答这段js代码怎么得不到预期结果。
本来要写一个滚动条到底部自动加载的功能,if里面的判断表达式结果确实是true但是if里面的代码被执行5次。设置全局变量,return false.....都没法解决这个问题。求js大神解答。该怎么写才合适。 $(window).scroll(function(){ if (($(document).height())==($(window).height()+$(document).scrollTop())) { alert('loading');//这段代码被执行5次,为什么?求大神解答 } }); 贴上我编辑器里面的内容: $(window).scroll(function(){ $('#footer').html(($(document).height())+'jj'+($(window).height()+$(document).scrollTop())); // return false; if (($(document).height())==($(window).height()+$(document).scrollTop())) { // if(!loading) return false; loading++;//中断后续请求 // loadingStatus('你好'); $.post('http://www.baidu.com',{c:'dd'},function(data){ if(data.status){ }else{ } },'json'); alert(loading); } });
两个js面试题,求大神解答
var name = "world"; (function(){ if(typeof name ==="undefined"){ var name="jack"; console.log("Goodbye"+name); }else{ console.log("hello"+name) } })() ``` function fun(n,o){ console.log(o); return { fun:function(m){ return fun(m,n); } } } var a=fun(0); a.fun(1); a.fun(2); a.fun(3); ``` 这是两个js面试题?谁能帮我解答一下,并告诉原理
正在读一个JS源码库Fingerpoint2。函数前有注解不明其意,求大神解答
正在读一个JS源码库Fingerpoint2。我发现有些函数前会有类似这样的注解,但是我不明其意。请大神们解答,万分感谢 /** * @template T,V * @param {T=} context * @param {function(this:T, ?, (string|number), T=):V} iterator * @return {V} */ map: function (obj, iterator, context) { var results = [] // Not using strict equality so that this acts as a // shortcut to checking for `null` and `undefined`. if (obj == null) { return results } if (this.nativeMap && obj.map === this.nativeMap) { return obj.map(iterator, context) } this.each(obj, function (value, index, list) { results[results.length] = iterator.call(context, value, index, list) }) return results },
大神帮我解答一下email验证问题吧!
我的这个js function验证email格式和传统的一样,但是现在发现程序要求并没有说email是not null, 所以怎么写js才能验证email: 1. email 为空时跳过 2. email不为空时验证格式。 比较苦恼,请各位大神解答怎么写这个循环,谢谢。基础代码贴在下面, function validate_email(field,alerttxt){ with (field){ apos=value.indexOf("@") dotpos=value.lastIndexOf(".") if (apos<1||dotpos-apos<2) { alert(alerttxt);return false} else{ return true} } }
click事件的ajax触发不了,请求大神解答
``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>登录</title> <link rel="icon" href="/assets/images/favicon.ico?verson=<%=Math.random()%>>"> <link href="/assets/css/base1.css" rel="stylesheet" type="text/css" /> <link href="/assets/css/base.css" rel="stylesheet" type="text/css" /> <link href="/assets/css/global.css" rel="stylesheet" type="text/css" /> <style type="text/css"> .login_fs { position: absolute; right: 0; top: 9.5%; width: 52px; height: 52px; cursor: pointer; z-index:100 } .qrcode_btn { background: #ffffff url(/assets/images/loginfs.png) no-repeat; } .qrcode_btn:hover { background: #ffffff url(/assets/images/loginfs.png) no-repeat 0px -60px; } </style> <script type="text/javascript" src="/assets/js/jquery.min.js"></script> <script type="text/javascript" src="/assets/js/jquery-ui.min.js"></script> <script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script> </head> <body class="login_bg"> <div class="logo"><div class="fl"><img src="/assets/images/logo.png?verson=<%=Math.random()%>>"/></div><div class="fl logolm">办公系统</div></div> <div class="login"> <div class="login_fs qrcode_btn" title="微信扫码登录" onclick="showQrcode()"></div> <div id="login"> <form action="/login" method="post" id="myform" class="form-horizontal" > <div class="login_tab"> <div class="lm">员工登录</div> <div class="login_form"> <ul> <li class="login_user"><input id="userName" name="staffVO.userName" type="text" style="width:95%" class="login_text" value="" placeholder="登录用户名" required autofocus /></li> <li class="login_pass"><input id="password" name="staffVO.password" type="password" style="width:95%" class="login_text" placeholder="登录密码" required/><span class="error">${errorMessage }</span></li> <li class="login_btndiv" style="margin-top: 25px"><input id="Button1" type="submit" value="登录" class="login_btn"/></li> </ul> </div> <div class="mt10"><a href="/toResetStep1" style="color:#ee5252" >忘记密码/花名</a></div> <div class="mt10">地区:通州,南通,如东,广州,南京,佛山</div> </div> </form> <div class="login_banner">创新&nbsp;&nbsp;专业&nbsp;&nbsp;合作&nbsp;&nbsp;务实</div> </div> </div> <div id="loginTab" style="position:absolute;top:20%;left:38%;display:none"></div> <script type="text/javascript"> $(function(){ var code = '${param.code}'; if(code){ location.href = "/index"+location.search; } }); var appID = "wx9c2800cfc46895f0"; var uri = "http://www.zhizaolian.com:9090"; var obj = new WxLogin({ id: "loginTab", appid: appID, scope: "snsapi_login", redirect_uri: encodeURI(uri), state: guid() }); function showQrcode(){ $(".login").css("opacity", "0.1"); $(".logo").css("opacity", "0.1"); $("#loginTab").css("display", "block"); $("input").css("pointer-events", "none"); $(".qrcode_btn").css("pointer-events", "none"); } $("#login, .logo").click(function(){ if($("#loginTab").css("display")=='block'){ $("#loginTab").css("display", "none"); $(".login").css("opacity", "1"); $(".logo").css("opacity", "1"); $("input").css("pointer-events", ""); $(".qrcode_btn").css("pointer-events", ""); } }); function guid() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8); return v.toString(16); }); } $("#Button1").click(function(){ alert(1); var userName =$("#userName").val(); var password =$("#password").val(); $.ajax({ url:'/chaxunContract', type:'post', data:{userName:userName,password:password}, dataType:'json', success:function(data){ alert(2); alert(data.diff); if(data.diff>3){ var params = $("#myform").serialize(); window.location.href="/login"+ decodeURICompoent(params,true); Load.Base.LoadingPic.FullScreenShow(null); }else if(data.diff<=3 && data.diff>=0){ layer.open({ offset:'100px', title:'提醒', content:"您的劳动合同于"+data.endDate+"到期,请联系人事部门进行续签", success:function(index){ layer.close(index); var params = $("#myform").serialize(); window.location.href="/login"+ decodeURICompoent(params,true); Load.Base.LoadingPic.FullScreenShow(null); } }) }else if(data.diff<0){ layer.alert("您的劳动合同已于"+data.endDate+"到期,请联系人事部门进行续签后再登录"); }else if(data.diff=='no'){ layer.alert("您暂时未签署劳动合同,请联系人事部门进行签署后再登录"); } } }) }) </script> </body> </html> ``` click事件的ajax触发不了,请求大神解答
请教js大神,如下代码意思
if (!Function.prototype.bind)Function.prototype.bind = function (d) { var a = [].slice, b = a.call(arguments, 1), c = this, g = function () {}, f = function () { return c.apply(this instanceof g ? this : d || {}, b.concat(a.call(arguments))) }; g.prototype = c.prototype; f.prototype = new g; return f };
注释的那一句啥意思求大神解答还有第一个元素是啥
``` <body> <img src="tt/hetao.jpg" style="visibility:visible" /> <img src="tt/hetao.jpg" style="visibility:visible" /> <img src="tt/hetao.jpg" style="visibility:visible" /> <input type="button" id="xs" value="xs" onclick="return button_onclick('visible')" /> <input type="button" id="yc" value="yc" onclick="return button_onclick('hidden')" /> <script type="text/javascript"> function button_onclick(obj){ var imgs = document.images; for(n in imgs){ if(imgs[n]==imgs.length){ //忽略第一个元素它不是图片对象 continue; } imgs[n].style.visibility=obj; } } </script> </body> ``` 注释的那一句啥意思,,求大神解答还有第一个元素是啥
关于js闭包的疑问,求大神帮忙
function createFunction(){ var result = new Array(); for(var i=0;i<10;i++){ result[i]=function(){ return i; }; } return result; }; alert(createFunction()); 为什么输出是function(){ return i; } 这个闭包访问不到外包的函数的变量i?
跪求大神指教一个js问题
最近一直在学习js,遇到这样的问题: ``` function fun() { this.name = 'name'; return []; } var a = new fun; a.name; //输出undefined 但是 function fun() { this.name = 'name'; return 2; } var a = new fun; a.name;//输出“name” ``` 为什么两次结果不一样?哪位大神给个解释!
关于javascript里面函数优先执行的问题。
function f(){return 1;} //函数1 alert(f()); var f =new Function("return 2;"); //函数2 alert(f()) ; function f() {return 3;} //函数3 alert(f()); function f(){return 4;} //函数 4 alert (f()) ; var f = new Function("return 5"); //函数5 alert(f()); var f = function () {return 6 ;} //函数6 alert (f()); //上面这段函数,在运行测试的时候,输出的顺序是4.2.2.2.5.6而教程里面的解析顺序 //却是4.2.3.3.5.6,这是什么问题?有哪位大神可以和我说一下?谢谢先了
各位大神们,谁知道怎样通过three.js导入外部3d模型,然后可以拖动模型,并且模型的一部分不能被单独拖动,这个问题困扰我很多天,现在还是没办法解决,求助各位大神了,万分感谢!
各位大神们,我现在可以导入3d模型,并且这个模型可以拖动,但是一部分模型被单独拖动,其他模型不动,代码如下: ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>拖拽控件</title> <style> body { margin: 0; overflow: hidden; } #label { position: absolute; padding: 10px; background: rgba(255, 255, 255, 0.6); line-height: 1; border-radius: 5px; } </style> <script src="js/three.js"></script> <script src="js/jquery-1.9.1.js"></script> <script src="js/Detector.js"></script> <script src="js/TrackballControls.js"></script> <script src="js/dat.gui.min.js"></script> <script src="js/stats.min.js"></script> <script src="js/OBJLoader.js"></script> <script src="js/FBXLoader.js"></script> <script src="js/inflate.min.js"></script> <!--拖拽控件--> <script src="js/DragControls.js"></script> <!--可视化平移控件--> <script src="js/TransformControls.js"></script> </head> <body> <div id="WebGL-output"></div> <div id="Stats-output"></div> <div id="label"></div> <script> var objects=[]; var stats = initStats(); var scene, camera, renderer, controls, light, selectObject; // 场景 function initScene() { scene = new THREE.Scene(); } // 相机 function initCamera() { camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 10000); camera.position.set(0, 400, 600); camera.lookAt(new THREE.Vector3(0, 0, 0)); } // 渲染器 function initRenderer() { if (Detector.webgl) { renderer = new THREE.WebGLRenderer({antialias: true}); } else { renderer = new THREE.CanvasRenderer(); } renderer.setSize(window.innerWidth, window.innerHeight); renderer.setClearColor(0x050505); document.body.appendChild(renderer.domElement); } // 初始化模型 function initContent() { var helper = new THREE.GridHelper(1800, 50, 0x4A4A4A); helper.setColors(0x9370DB); scene.add(helper); var loader = new THREE.OBJLoader(); loader.load( "moder/obj/windmill.obj", function ( group ) { group.position.x=400; group.scale.set(20, 20, 20);//模型放大20倍 //group.scale.color(0x3CB37 group.name="groups" scene.add( group ); objects.push(group); } ); var loader = new THREE.OBJLoader(); loader.load( "moder/obj/low.obj", function ( group ) { group.position.x=-400; group.scale.set(20, 20, 20);//模型放大20倍 //group.scale.color(0x3CB37 group.name="groupss"; scene.add( group ); objects.push(group); } ); var loader = new THREE.FBXLoader(); //Samba Dancing idle_2 loader.load( 'moder/fbx/pipeline.fbx', function ( object ) { //console.log(object); object.scale.set(1,1,1); scene.add( object ); objects.push(object); mixers=object.mixer = new THREE.AnimationMixer( object ); var action = object.mixer.clipAction( object.animations[0]); action.play(); object.traverse( function ( child ) { if ( child.isMesh ) { child.castShadow = true; child.receiveShadow = true; } } ); console.log(object); } ); /*var cubeGeometry = new THREE.BoxGeometry(100, 100, 100); var cubeMaterial = new THREE.MeshLambertMaterial({color: 0x9370DB}); var cube = new THREE.Mesh(cubeGeometry, cubeMaterial); cube.position.x = -600; cube.position.y = 50; cube.name = "cubes"; scene.add(cube); var sphereGeometry = new THREE.SphereGeometry(50, 50, 50, 50); var sphereMaterial = new THREE.MeshLambertMaterial({color: 0x3CB371}); var sphere = new THREE.Mesh(sphereGeometry, sphereMaterial); sphere.position.x = 200; sphere.position.y = 50; sphere.name = "sphere"; // sphere.position.z = 200; scene.add(sphere); var cylinderGeometry = new THREE.CylinderGeometry(50, 50, 100, 100); var cylinderMaterial = new THREE.MeshLambertMaterial({color: 0xCD7054}); var cylinder = new THREE.Mesh(cylinderGeometry, cylinderMaterial); cylinder.position.x = -200; cylinder.position.y = 50; cylinder.name = "cylinder"; scene.add(cylinder);*/ } console.log(objects); // 鼠标双击触发的方法 function onMouseDblclick(event) { // 获取 raycaster 和所有模型相交的数组,其中的元素按照距离排序,越近的越靠前 var intersects = getIntersects(event); // 获取选中最近的 Mesh 对象 if (intersects.length != 0 && intersects[0].object ) { selectObject = intersects[0].object.parent; changeMaterial(selectObject); console.log(changeMaterial); } else { alert("未选中 Mesh!"); } } // 获取与射线相交的对象数组 function getIntersects(event) { event.preventDefault(); console.log("event.clientX:" + event.clientX) console.log("event.clientY:" + event.clientY) // 声明 raycaster 和 mouse 变量 var raycaster = new THREE.Raycaster(); var mouse = new THREE.Vector2(); // 通过鼠标点击位置,计算出 raycaster 所需点的位置,以屏幕为中心点,范围 -1 到 1 mouse.x = (event.clientX / window.innerWidth) * 2 - 1; mouse.y = -(event.clientY / window.innerHeight) * 2 + 1; //通过鼠标点击的位置(二维坐标)和当前相机的矩阵计算出射线位置 raycaster.setFromCamera(mouse, camera); // 获取与射线相交的对象数组,其中的元素按照距离排序,越近的越靠前 var intersects = raycaster.intersectObjects(scene.children); var intersects=intersects.parent; console.log(intersects); //返回选中的对象 return intersects; } // 窗口变动触发的方法 function onWindowResize() { camera.aspect = window.innerWidth / window.innerHeight; camera.updateProjectionMatrix(); renderer.setSize(window.innerWidth, window.innerHeight); } // 键盘按下触发的方法 function onKeyDown(event) { switch (event.keyCode) { case 13: initCamera(); initControls(); break; } } // 改变对象材质属性 function changeMaterial(object) { var material = new THREE.MeshLambertMaterial({ color: 0xffffff * Math.random(), transparent: object.material.transparent ? false : true, opacity: 0.8, }); object.material = material; } // 初始化轨迹球控件 function initControls() { controls = new THREE.TrackballControls(camera, renderer.domElement); // controls.noRotate = true; controls.noPan = true; // 视角最小距离 controls.minDistance = 1000; // 视角最远距离 controls.maxDistance = 5000; } // 添加拖拽控件 function initDragControls() { // 添加平移控件 var transformControls = new THREE.TransformControls(camera, renderer.domElement); scene.add(transformControls); // 过滤不是 Mesh 的物体,例如辅助网格 //var objects = []; /*for (let i = 0; i < scene.children.length; i++) { if (scene.children[i].isMesh) { objects.push(scene.children[i]); } //objects.push(object[i].parent); }*/ // 初始化拖拽控件 var dragControls = new THREE.DragControls(objects, camera, renderer.domElement); // 鼠标略过事件 dragControls.addEventListener('hoveron', function (event) { // 让变换控件对象和选中的对象绑定 transformControls.attach(event.object); }); // 开始拖拽 dragControls.addEventListener('dragstart', function (event) { controls.enabled = false; }); // 拖拽结束 dragControls.addEventListener('dragend', function (event) { controls.enabled = true; }); console.log(objects.length); } // 初始化灯光 function initLight() { light = new THREE.SpotLight(0xffffff); light.position.set(-300, 600, -400); light.castShadow = true; scene.add(light); scene.add(new THREE.AmbientLight(0x5C5C5C)); } // 初始化 dat.GUI function initGui() { // 保存需要修改相关数据的对象 gui = new function () { } // 属性添加到控件 var guiControls = new dat.GUI(); } // 初始化性能插件 function initStats() { var stats = new Stats(); stats.domElement.style.position = 'absolute'; stats.domElement.style.left = '0px'; stats.domElement.style.top = '0px'; document.body.appendChild(stats.domElement); return stats; } // 更新div的位置 function renderDiv(object) { // 获取窗口的一半高度和宽度 let halfWidth = window.innerWidth / 2; let halfHeight = window.innerHeight / 2; // 逆转相机求出二维坐标 let vector = object.position.clone().project(camera); // 修改 div 的位置 $("#label").css({ left: vector.x * halfWidth + halfWidth, top: -vector.y * halfHeight + halfHeight - object.position.y }); // 显示模型信息 //$("#label").text("name:" + object.name); } // 更新控件 function update() { stats.update(); controls.update(); controls.handleResize(); //transformControls.update(); } // 初始化 function init() { initScene(); initCamera(); initRenderer(); initContent(); initLight(); initControls(); initGui(); initDragControls(); // addEventListener('dblclick', onMouseDblclick, false); addEventListener('resize', onWindowResize, false); addEventListener('keydown', onKeyDown, false); } function animate() { if (selectObject != undefined && selectObject != null) { renderDiv(selectObject); } requestAnimationFrame(animate); renderer.render(scene, camera); update(); } init(); animate(); </script> </body> </html> ``` 一部分模型被单独拖动的效果如下: ![图片说明](https://img-ask.csdn.net/upload/201911/04/1572863955_100421.png) 然后我再修改当鼠标略过事件: ![图片说明](https://img-ask.csdn.net/upload/201911/04/1572864098_336978.png) 整个模型可以一起被拖动,但是模型混乱:效果图如下: ![图片说明](https://img-ask.csdn.net/upload/201911/05/1572916540_633061.png) 希望路过的好心人帮帮忙,万分感谢!!!!!!
javaScript中返回true和false的问题,求大神解答!!
``` <%-- Created by IntelliJ IDEA. User: TopbeCoder5 Date: 2015/1/18 Time: 20:44 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>测试alertMsg</title> <link href="css/alertMsg.css" rel="stylesheet" type="text/css"/> <script type="text/javascript"> function alertMsg(msg, mode) { //mode为空,即只有一个确认按钮,mode为1时有确认和取消两个按钮 msg = msg || ''; mode = mode || 0; var top = document.body.scrollTop || document.documentElement.scrollTop; var isIe = (document.all) ? true : false; var isIE6 = isIe && !window.XMLHttpRequest; var sTop = document.documentElement.scrollTop || document.body.scrollTop; var sLeft = document.documentElement.scrollLeft || document.body.scrollLeft; var winSize = function () { var xScroll, yScroll, windowWidth, windowHeight, pageWidth, pageHeight; // innerHeight获取的是可视窗口的高度,IE不支持此属性 if (window.innerHeight && window.scrollMaxY) { xScroll = document.body.scrollWidth; yScroll = window.innerHeight + window.scrollMaxY; } else if (document.body.scrollHeight > document.body.offsetHeight) { // all but Explorer Mac xScroll = document.body.scrollWidth; yScroll = document.body.scrollHeight; } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari xScroll = document.body.offsetWidth; yScroll = document.body.offsetHeight; } if (self.innerHeight) { // all except Explorer windowWidth = self.innerWidth; windowHeight = self.innerHeight; } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode windowWidth = document.documentElement.clientWidth; windowHeight = document.documentElement.clientHeight; } else if (document.body) { // other Explorers windowWidth = document.body.clientWidth; windowHeight = document.body.clientHeight; } // for small pages with total height less then height of the viewport if (yScroll < windowHeight) { pageHeight = windowHeight; } else { pageHeight = yScroll; } // for small pages with total width less then width of the viewport if (xScroll < windowWidth) { pageWidth = windowWidth; } else { pageWidth = xScroll; } return { 'pageWidth': pageWidth, 'pageHeight': pageHeight, 'windowWidth': windowWidth, 'windowHeight': windowHeight } }(); //alert(winSize.pageWidth); //遮罩层 var styleStr = 'top:0;left:0;position:absolute;z-index:10000;background:#666;width:' + winSize.pageWidth + 'px;height:' + (winSize.pageHeight + 30) + 'px;'; styleStr += (isIe) ? "filter:alpha(opacity=80);" : "opacity:0.8;"; //遮罩层DIV var shadowDiv = document.createElement('div'); //添加阴影DIV shadowDiv.style.cssText = styleStr; //添加样式 shadowDiv.id = "shadowDiv"; //如果是IE6则创建IFRAME遮罩SELECT if (isIE6) { var maskIframe = document.createElement('iframe'); maskIframe.style.cssText = 'width:' + winSize.pageWidth + 'px;height:' + (winSize.pageHeight + 30) + 'px;position:absolute;visibility:inherit;z-index:-1;filter:alpha(opacity=0);'; maskIframe.frameborder = 0; maskIframe.src = "about:blank"; shadowDiv.appendChild(maskIframe); } document.body.insertBefore(shadowDiv, document.body.firstChild); //遮罩层加入文档 //弹出框 var styleStr1 = 'display:block;position:fixed;_position:absolute;left:' + (winSize.windowWidth / 2 - 125) + 'px;top:' + (winSize.windowHeight / 2 - 70) + 'px;_top:' + (winSize.windowHeight / 2 + top - 150) + 'px;'; //弹出框的位置 var alertBox = document.createElement('div'); var alertTitle = document.createElement('div'); alertTitle.id = 'alertTitle'; alertBox.id = 'alertMsg'; alertBox.style.cssText = styleStr1; //创建弹出框里面的内容P标签 var alertMsg_info = document.createElement('P'); alertMsg_info.id = 'alertMsg_info'; alertMsg_info.innerHTML = msg; alertTitle.innerHTML = '提示信息!'; alertBox.appendChild(alertTitle); alertBox.appendChild(alertMsg_info); //创建按钮 var styleStr2 = 'display:block;position:fixed;_position:absolute;left:' + (winSize.windowWidth / 2 - 125) + 'px;top:' + (winSize.windowHeight / 2 + 40) + 'px;_top:' + (winSize.windowHeight / 2 + top - 150) + 'px;'; //弹出框的位置 var alertBottom = document.createElement('div'); alertBottom.id = 'alertBottom'; alertBottom.style.cssText = styleStr2; if (mode === 1) { var btn1 = document.createElement('a'); btn1.id = 'alertMsg_btn1'; btn1.href = 'javas' + 'cript:void(0)'; btn1.innerHTML = '<cite>确定</cite>'; btn1.onclick = function () { document.body.removeChild(alertBox); document.body.removeChild(shadowDiv); document.body.removeChild(alertBottom); //document.getElementById("logout").click(); return true; }; alertBottom.appendChild(btn1); var btn2 = document.createElement('a'); btn2.id = 'alertMsg_btn2'; btn2.href = 'javas' + 'cript:void(0)'; btn2.innerHTML = '<cite>取消</cite>'; btn2.onclick = function () { document.body.removeChild(alertBox); document.body.removeChild(shadowDiv); document.body.removeChild(alertBottom); return false; }; } else { var btn2 = document.createElement('a'); btn2.id = 'alertMsg_btn2'; btn2.href = 'javas' + 'cript:void(0)'; btn2.innerHTML = '<cite>确定</cite>'; btn2.onclick = function () { document.body.removeChild(alertBox); document.body.removeChild(shadowDiv); document.body.removeChild(alertBottom); return false; }; } alertBottom.appendChild(btn2); document.body.appendChild(alertBox); document.body.appendChild(alertBottom); } function confirmMsg() { if (alertMsg("测试", 1)) { alert("点击了确定"); } else { alert("点击了取消"); } } </script> </head> <body> <input type="button" value="Test the alert" onclick="return confirmMsg('test confirm');"> </body> </html> ``` 为什么一点botton就直接运行了false啊??
为什么取不到js return的值啊啊啊啊~~求大神讲解。。
``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script> <script type="text/javascript" src="language.js"></script> <title></title> </head> <body> <button id="a1">中文</button> <a id="a2">香蕉</a> <a id="a3">苹果</a> <button id="a4">英文</button> <script> $("#a1").click(function() { cl(this); }); $("#a4").click(function() { for(var i = 2; i <= 3; i++) { var s = document.getElementById("a" + i).innerHTML; // alert(s); alert(getjson(s)); document.getElementById("a" + i).innerHTML = getjson(s); } }); </script> </body> </html> ``` ``` function cl(e) { $.get(e.id + ".json", function(data) { alert(data.but[0]); var list = document.getElementsByTagName("a"); for(var i = 0; i < list.length; i++) { list[i].innerHTML = data.T[i]; } }); } function getjson(c) { $.get("a2.json", function(data) { var jValue = ''; // alert("yyyyyyy"+data); for(var item in data) { if(item == c) { //item 表示Json串中的属性,如'name' jValue = data[item]; //key所对应的value return jValue; } } //return jValue; }); } ``` 为什么html运行时无法接收到return的值啊,就是这个return jValue;有没有什么好的解决办法~~
求教JavaScript大神问题
这段代码的目的是实现:鼠标在地图上点一个点,会有标记产生;再点击另一个点,产生标记同时会在两个点之间划线。再点击一个点,它会与上一个点间划线。但是现在打开网页的话没有标记,也没有点。请教大神们这是为什么 ``` 这段代码的目的是实现:鼠标在地图上点一个点,会有标记产生;再点击另一个点,产生标记同时会在两个点之间划线。再点击一个点,它会与上一个点间划线。但是现在打开网页的话没有标记,也没有点。请教大神们这是为什么 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Google Maps JavaScript API v3 Example: Image MapTypes</title> <link href="mapfiles/css/default.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="mapapi.js"></script> <script type="text/javascript" src="mapapi.js"></script> <script> function CoordMapType(tileSize) { this.tileSize = tileSize; } CoordMapType.prototype.getTile = function(coord, zoom, ownerDocument) { var div = ownerDocument.createElement('DIV'); var ymax = 1 << zoom; var y = ymax - coord.y - 1; //div.innerHTML = coord.x + "," + y + "," + zoom; //div.style.width = this.tileSize.width + 'px'; //div.style.height = this.tileSize.height + 'px'; //div.style.fontSize = '10'; //div.style.borderStyle = 'solid'; //div.style.borderWidth = '1px'; //div.style.borderColor = '#AAAAAA'; return div; }; function LocalMapType() {} LocalMapType.prototype.tileSize = new google.maps.Size(256, 256); LocalMapType.prototype.maxZoom = 18; LocalMapType.prototype.minZoom = 1; LocalMapType.prototype.name = "\u672C\u5730"; LocalMapType.prototype.alt = "\u663E\u793A\u672C\u5730\u5730\u56FE"; LocalMapType.prototype.getTile = function(coord, zoom, ownerDocument) { var img = ownerDocument.createElement("img"); img.style.width = this.tileSize.width + "px"; img.style.height = this.tileSize.height + "px"; var ymax = 1 << zoom; var y = ymax - coord.y - 1; var strURL = "tilemap\\" + zoom + "\\" + coord.x + "\\" + coord.y + ".png"; img.src = strURL; return img; }; var localMapType = new LocalMapType(); var myLatlng; var myOptions; var map; var poly; function initialize() { myLatlng = new google.maps.LatLng(34.251345, 108.946673); myOptions = { center: myLatlng, zoom: 16, streetViewControl: false, //\u6BD4\u4F8B\u5C3A\u63A7\u4EF6 scaleControl: true, mapTypeControlOptions: { mapTypeIds: ["local", google.maps.MapTypeId.ROADMAP] } }; map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); //map.setMapTypeId('satellite'); //map.MapTypes.insertAt(0, moonMapType); map.mapTypes.set('local', localMapType); map.setMapTypeId('local'); google.maps.event.addListener(map, 'mouseover', function(event){ var lat = event.latLng.lat();//纬度 var lng =event.latLng.lng();//经度 }); map.overlayMapTypes.insertAt(0, new CoordMapType(new google.maps.Size(256, 256))); poly = new google.maps.Polyline({ strokeColor: '#000000', strokeOpacity: 1.0, strokeWeight: 3 }); poly.setMap(map); // Add a listener for the click event map.addListener('click', addLatLng); } function addLatLng(event) { var path = poly.getPath(); // Because path is an MVCArray, we can simply append a new coordinate // and it will automatically appear. path.push(event.latLng); // Add a new marker at the new plotted point on the polyline. var marker = new google.maps.Marker({ position: event.latLng, title: '#' + path.getLength(), map: map }); } </script> </head> <body onload="initialize()"> <!--<div id="map_canvas" style="width: 100%; height: 690px;"></div>--> <div id="map_canvas" style="width: 100%; height: 690px;"></div> </body> </html> ```
js代码转换为java~求大神指教,下面这段js怎么用java写出来
``` // 获取access_token,自动带缓存功能 function get_access_token($token = '', $update = false) { empty ( $token ) && $token = get_token (); $info = get_token_appinfo ( $token ); // 微信开放平台一键绑定 if ($token == 'gh_3c884a361561' || $info ['is_bind']) { $access_token = get_authorizer_access_token ( $info ['appid'], $info ['authorizer_refresh_token'], $update ); } else { $access_token = get_access_token_by_apppid ( $info ['appid'], $info ['secret'], $update ); } // 自动判断access_token是否已失效,如失效自动获取新的 if ($update == false) { $url = 'https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=' . $access_token; $res = wp_file_get_contents ( $url ); $res = json_decode ( $res, true ); if ($res ['errcode'] == '40001') { $access_token = get_access_token ( $token, true ); } } return $access_token; } // 获取当前用户的Token function get_token($token = NULL) { $stoken = session ( 'token' ); $reset = false; if ($token !== NULL && $token != '-1') { session ( 'token', $token ); $reset = true; } elseif (! empty ( $_REQUEST ['token'] ) && $_REQUEST ['token'] != '-1') { session ( 'token', $_REQUEST ['token'] ); $reset = true; } elseif (! empty ( $_REQUEST ['publicid'] )) { $publicid = I ( 'publicid' ); $token = D ( 'Common/Public' )->getInfo ( $publicid, 'token' ); $token && session ( 'token', $token ); $reset = true; } $token = session ( 'token' ); if (! empty ( $token ) && $token != '-1' && $stoken != $token && $GLOBALS ['is_wap']) { session ( 'mid', null ); } //加校验,防止使用无权限的公众号 /*if(!$GLOBALS['is_wap'] && $reset){ if(empty($GLOBALS['myinfo'])) $token = -1; else{ $sql = 'SELECT public_id FROM `'.C('DB_PREFIX').'public_link` as l LEFT JOIN '.C('DB_PREFIX').'public as p on l.mp_id=p.id WHERE l.uid='.$GLOBALS['mid']; $list = M()->query($sql); $flat = false; foreach ($list as $value) { if($value['public_id']==$token){ $flat = true; } } if(!$flat) $token = -1; } }*/ if (empty ( $token ) ) { $token = -1; } return $token; } // 获取公众号的信息 function get_token_appinfo($token = '', $field = '') { empty ( $token ) && $token = get_token (); if ($token != 'gh_3c884a361561') { $info = D ( 'Common/Public' )->getInfoByToken ( $token, $field ); } return $info; } function get_authorizer_access_token($appid, $refresh_token, $update) { if (empty ( $appid )) { return 0; } $key = 'authorizer_access_token_' . $appid; $res = S ( $key ); if ($res !== false && ! $update) return $res; $dao = D ( 'Addons://PublicBind/PublicBind' ); if (empty ( $refresh_token )) { $auth_code = $dao->_get_pre_auth_code (); $info = $dao->getAuthInfo ( $auth_code ); $authorizer_access_token = $info ['authorization_info'] ['authorizer_access_token']; } else { $info = $dao->refreshToken ( $appid, $refresh_token ); $authorizer_access_token = $info ['authorizer_access_token']; } if (! empty ( $authorizer_access_token )) { S ( $key, $authorizer_access_token, $info ['expires_in'] - 200 ); return $authorizer_access_token; } else { addWeixinLog ( $info, 'get_authorizer_access_token_fail_' . $appid ); return 0; } } function get_access_token_by_apppid($appid, $secret, $update = false) { if (empty ( $appid ) || empty ( $secret )) { return 0; } $key = 'access_token_apppid_' . $appid . '_' . $secret; $res = S ( $key ); if ($res !== false && ! $update) return $res; $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&secret=' . $secret . '&appid=' . $appid; $tempArr = json_decode ( get_data ( $url ), true ); if (@array_key_exists ( 'access_token', $tempArr )) { S ( $key, $tempArr ['access_token'], $tempArr ['expires_in'] ); return $tempArr ['access_token']; } else { return 0; } } // 防超时的file_get_contents改造函数 function wp_file_get_contents($url) { return get_data ( $url, 30 ); } // 以GET方式获取数据,替代file_get_contents function get_data($url, $timeout = 5) { $msg = $flat = ''; if (strpos ( $url, 'http://' ) !== false || strpos ( $url, 'https://' ) !== false) { $ch = curl_init (); curl_setopt ( $ch, CURLOPT_URL, $url ); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, $timeout ); curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, FALSE ); // 跳过证书检查 curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, FALSE ); // 不检查证书 $res = curl_exec ( $ch ); $flat = curl_errno ( $ch ); if ($flat) { $msg = curl_error ( $ch ); } curl_close ( $ch ); } else { $context = stream_context_create ( array ( 'http' => array ( 'timeout' => 30 ) ) ); // 超时时间,单位为秒 $res = file_get_contents ( $url, 0, $context ); } return $res; } ``` ``` ```
JS新增或编辑进行了回车换行,然后编辑打开就不显示换行,显示成一行了,各位大神要怎么解决?
![图片说明](https://img-ask.csdn.net/upload/202001/10/1578658734_605187.png) ``` function getAdd() { var w=$(window).width(); var h=$(window).height(); $('#dd').dialog({ title: '添加缺陷记录', width: w * .6, height: h - 136, closed: false, cache: false, href: 'dia/log/defect-record/get-add.html?module_id=' + module_id + '&station_info=' + station_info, modal: true, buttons: [{ text: '保存', iconCls: "easy-icon-save", handler: function () { var shift = $("#reportShift").combobox("getValue"); if(shift == -1 || shift == ""){ $.messager.alert('操作', '请重新核对缺陷上报日期以及所选班次'); return false; } checkStation("station");//检测是否选择或输入 var defectLevel = $('#defectLevel').combobox('getValue'); if (defectLevel == 0 || defectLevel == 1) { var planTime = $('#planProTime').datebox('getValue'); if (planTime == null || planTime == '') { $.messager.alert("修改", "计划处理时间不能为空!", "error"); return; } } var data = $("#defect-add-form").serialize(); $.ajax({ url: "dia/log/defect-record/insert.do?module_id=" + module_id + '&proResult=' + $('#proResult').val(), type : "post", dataType : "json", data : data, success : function(request) { if(request.success){ query(); } $.messager.show({ title: '操作提示', msg: request.msg, timeout: 2000, sshowType: 'slide' }); } }); $("#dd").dialog({ closed: true }); } }, { text: '关闭', iconCls: "easy-icon-cancel", handler: function () { $("#dd").dialog({ closed: true }); } }], //用于图形化,窗口打开完成后,给厂站赋值 onLoad: function () { var indexDevId = $("#indexDevId").val(); $('#station').combobox('setValue', indexDevId); } }); } ``` ``` function getEdit() { var row=$("#defectTable").datagrid("getSelected"); if(row==null){ $.messager.alert("修改","请选择缺陷信息","error"); return; } var w=$(window).width(); var h=$(window).height(); $('#dd').dialog({ title: '修改缺陷记录', width: w * .7, height: h - 136, closed: false, cache: false, href: 'dia/log/defect-record/get-edit.html?module_id=' + module_id + '&id=' + row.id, modal: true, buttons: [{ text: '保存', iconCls: "easy-icon-save", handler: function () { var solveTime = $("#solveTime").datetimebox("getText"); if (solveTime != "") { var solveShift = $("#solveShift").combobox("getValue"); if (solveShift == -1 || solveShift == "") { $.messager.alert('操作', '请选择消缺班次'); return false; } } checkStation("station");//检测是否选择或输入 var data = $("#defect-edit-form").serialize(); $.ajax({ url: "dia/log/defect-record/update.do?module_id=" + module_id + "&proResult=" + $('#proResult').val(), type : "post", dataType : "json", data : data, success : function(request) { if(request.success){ query(); } $.messager.show({ title: '操作提示', msg: request.msg, timeout: 2000, showType: 'slide' }); } }); $("#dd").dialog({ closed: true }); } }, { text: '关闭', iconCls: "easy-icon-cancel", handler: function () { $("#dd").dialog({ closed: true }); } }, { text: '清空消缺信息', iconCls: "easy-icon-reload", handler: function () { $("#solveTime").datetimebox("setText", ""); $("input[name='solveTimeNoSeconds']").val(""); $("#solvePerson").textbox("setValue", ""); $("#solveShift").combobox("clear"); } }] }); } ``` 下面的是JSP代码 ``` <tr> <td class="td-inputtitle" style="text-align: center">处理过程</td> <td class="td-input" colspan="5"> <c:forEach var="item" items="${historyProcess }"> <c:if test="${item.content!=null && item.content!='' }"> <div class="history_process"> <div class="user_info">${item.userName }<br/>${item.time }</div> <div class="content">${fn:replace(item.content,vEnter,'<br/>') }</div> <div class="clearfix"></div> </div> </c:if> </c:forEach> <textarea type="text" rows="6" name="processDesc" style="width:95%;">${currProcess.content }</textarea> </td> </tr> ``` ``` <tr> <td class="td-inputtitle" style="text-align: center">处理结果</td> <td class="td-input" colspan="5"> <c:forEach var="item" items="${historyProcess }"> <c:if test="${item.proResult!=null && item.proResult!='' }"> <div class="history_process"> <div class="user_info">${item.userName }<br/>${item.time }</div> <div class="content">${fn:replace(item.proResult,vEnter,'<br/>') }</div> <div class="clearfix"></div> </div> </c:if> </c:forEach> <textarea type="text" rows="6" name="proResult" id="proResult" style="width:95%;">${currProcess.proResult }</textarea> </td> </tr> ```
没看懂一段js代码 望大神解惑
![图片说明](https://img-ask.csdn.net/upload/201704/20/1492651660_371967.png) 尤其是 if(typeof array[0][field] === "number") { array.sort(function(x, y) { return x[field] - y[field]}); } if(typeof array[0][field] === "string") { array.sort(function(x, y) { return x[field].localeCompare(y[field])}); }
求大神指导一个JS问题
var arr2 = ["WEST","NORTH"]; var num1 = 0; function checkDir(arr,num){ if (num == arr.length-1 || arr == '' || arr == ["NORTH","WEST","SOUTH","EAST"]) { alert(arr); return arr; }else{ alert("走了这里"); switch(arr[num]){ case "NORTH": alert(1); dirCompare("SOUTH",num,arr); break; case "SOUTH": alert(2); dirCompare("NORTH",num,arr); break; case "EAST": alert(3); dirCompare("WEST",num,arr); break; case "WEST": alert(4); dirCompare("EAST",num,arr); break; } } } function dirCompare(str,num,arr1){ var switch1 = 0; for (var i = num+1; i < arr1.length; i++) { if (arr1[i]==str){ arr1.splice(num,1); arr1.splice(i-1,1); switch1 = 1; checkDir(arr1,num); return; } }; if (switch1 == 0){ num++; alert(arr1 + "-" + num); checkDir(arr1,num); } } alert(checkDir(arr2,num1)); 这是一个判断方向的需求,每一对东西或南北都被剔除,上面函数里直接判断无法消除的两个方向,一直到第一个if条件中的alert都能正确返回需要的结果,但是后面的return arr似乎就没有被执行,最后函数返回值也是undefined,求大神解惑这是哪地方写错了。
本人是初学者看一些代码有些不懂,还请大神指点一下,谢谢
${ msg }表示什么意思呢??? index.jsp怎么跳转到main.jsp呢??? **index.jsp** ``` <html > <title>聊天室</title> <link href="CSS/style.css" rel="stylesheet"> <script type="text/javascript"> function check(){ if(document.getElementById("form1").username.value==""){ alert("请输入用户名!"); document.getElementById("form1").username.focus(); return false; } if(document.getElementById("form1").password.value==""){ alert("请输入密码名!"); document.getElementById("form1").password.focus(); return false; } } </script> <body> <br> <center><h3 style="color:red;">${ msg }</h3></center> <form id="form1" name="form1" method="post" action="${pageContext.request.contextPath }/user" onSubmit="return check()"> <input type="hidden" name="method" value="login"> <table width="371" height="230" border="0" align="center" cellpadding="0" cellspacing="0" background="images/login.jpg"> <tr> <td height="120" colspan="3" class="word_dark">&nbsp;</td> </tr> <tr> <td width="53" align="center" valign="top" class="word_dark">&nbsp;</td> <td width="216" align="center" valign="top" class="word_dark"> <table width="100%" height="100%"> <tr> <td>用户名:</td> <td><input type="text" name="username" class="login"></td> </tr> </table> </td> <td width="94" valign="top" class="word_dark"></td> </tr> <tr> <td width="53" align="center" valign="top" class="word_dark">&nbsp;</td> <td width="216" align="center" valign="top" class="word_dark"> <table width="100%" height="100%"> <tr> <td>密&nbsp;&nbsp;码:</td> <td><input type="password" name="password" class="login"></td> </tr> </table> </td> <td width="94" valign="top" class="word_dark"></td> </tr> <tr> <td width="53" align="center" valign="top" class="word_dark">&nbsp;</td> <td width="216" align="center" valign="top" class="word_dark"> <input name="Submit" type="submit" class="btn_bg" value="进 入"> </td> <td width="94" valign="top" class="word_dark"> </td> </tr> </table> </form> </body> </html> ``` **main** ``` <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ include file="safe.jsp"%> <html> <head> <title>聊天室</title> <link href="CSS/style.css" rel="stylesheet"> <script type="text/javascript" src="${ pageContext.request.contextPath }/js/jquery-1.8.3.js"></script> <script type="text/javascript"> var sysBBS = "<span style='font-size:14px; line-height:30px;'>欢迎光临心之语聊天室,请遵守聊天室规则,不要使用不文明用语。</span><br><span style='line-height:22px;'>";var sysBBS = "<span style='font-size:14px; line-height:30px;'>欢迎光临心之语聊天室,请遵守聊天室规则,不要使用不文明用语。</span><br><span style='line-height:22px;'>"; window.setInterval("showContent();",1000); window.setInterval("showOnLine();",10000); window.setInterval("check();",1000); // Jquery:JS框架. // 相当于window.onload $(function(){ showOnLine(); showContent(); check(); }); function check(){ $.post("${pageContext.request.contextPath}/user?method=check",function(data){ if(data == 1){ // 提示用户下线了 alert("用户已经被踢下线了!"); // 回到登录页面! window.location = "index.jsp"; } }); } // 显示在线人员列表 function showOnLine(){ // 异步发送请求 获取在线人员列表 // Jquery发送异步请求 $.post("${pageContext.request.contextPath}/online.jsp?"+new Date().getTime(),function(data){ // $("#online") == document.getElementById("online"); $("#online").html(data); }); } // 显示聊天的内容 function showContent(){ $.post("${pageContext.request.contextPath}/user?"+new Date().getTime(),{'method':'getMessage'},function(data){ $("#content").html(sysBBS+data); }); } function set(selectPerson){ //自动添加聊天对象 if(selectPerson != "${existUser.username}"){ form1.to.value=selectPerson; }else{ alert("请重新选择聊天对象!"); } } function send(){ if(form1.to.value==""){ alert("请选择聊天对象!"); return false; } if(form1.content.value==""){ alert("发送信息不可以为空!"); form1.content.focus(); return false; } // $("#form1").serialize():让表单中所有的元素都提交. // jquery提交数据.{id:1,name:aa,age:25} $.post("${pageContext.request.contextPath}/user?"+new Date().getTime(),$("#form1").serialize(),function(data){ $("#content").html(sysBBS+data+"</span>"); }); } function exit(){ alert("欢迎您下次光临!"); window.location.href="${pageContext.request.contextPath}/user?method=exit"; } function checkScrollScreen(){ if(!$("#scrollScreen").attr("checked")){ $("#content").css("overflow","scroll"); }else{ $("#content").css("overflow","hidden"); //当聊天信息超过一屏时,设置最先发送的聊天信息不显示 //alert($("#content").height()); $("#content").scrollTop($("#content").height()*2); } setTimeout('checkScrollScreen()',500); } </script> </head> <body> <table width="778" height="150" border="0" align="center" cellpadding="0" cellspacing="0" background="images/top.jpg"> <tr> <td>&nbsp;</td> </tr> </table> <table width="778" height="276" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="165" valign="top" bgcolor="#f6fded" id="online" style="padding:5px">在线人员列表</td> <td width="613" height="200px" valign="top" background="images/main_bj.jpg" bgcolor="#FFFFFF" style="padding:5px; "> <div style="height:290px; overflow:hidden" id="content">聊天内容</div></td> </tr> </table> <table width="778" height="95" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#D6D3CE" background="images/bottom.jpg"> <form action="" id="form1" name="form1" method="post"> <input type="hidden" name="method" value="sendMessage"/> <tr> <td height="30" align="left">&nbsp;</td> <td height="37" align="left"> <input name="from" type="hidden" value="${existUser.username}">[${existUser.username} ]对 <input name="to" type="text" value="" size="35" readonly="readonly"> 表情 <select name="face" class="wenbenkuang"> <option value="无精打采的">无精打采的</option> </select> 说:</td> <td width="189" align="left">&nbsp;&nbsp;字体颜色: <select name="color" size="1" class="wenbenkuang" id="select"> <option selected>默认颜色</option> <option style="color:#999999" value="999999">烟雨蒙蒙</option> </select> </td> <td width="19" align="left"><input name="scrollScreen" type="checkbox" class="noborder" id="scrollScreen" onClick="checkScrollScreen()" value="1" checked> </td> </tr> <tr> <td width="21" height="30" align="left">&nbsp;</td> <td width="549" align="left"> <input name="content" type="text" size="70" onKeyDown="if(event.keyCode==13 && event.ctrlKey){send();}"> <input name="Submit2" type="button" class="btn_grey" value="发送" onClick="send()"> </td> <td align="right"><input name="button_exit" type="button" class="btn_grey" value="退出聊天室" onClick="exit()"> </td> <td align="center">&nbsp;</td> </tr> <tr> <td height="30" align="left">&nbsp;</td> <td align="center">&nbsp;</td> </tr> </form> </table> </body> </html> ```
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Vue + Spring Boot 项目实战(十四):用户认证方案与完善的访问拦截
本篇文章主要讲解 token、session 等用户认证方案的区别并分析常见误区,以及如何通过前后端的配合实现完善的访问拦截,为下一步权限控制的实现打下基础。
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入  假设现有4个人
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
漫话:什么是平衡(AVL)树?这应该是把AVL树讲的最好的文章了
这篇文章通过对话的形式,由浅入深带你读懂 AVL 树,看完让你保证理解 AVL 树的各种操作,如果觉得不错,别吝啬你的赞哦。 1、若它的左子树不为空,则左子树上所有的节点值都小于它的根节点值。 2、若它的右子树不为空,则右子树上所有的节点值均大于它的根节点值。 3、它的左右子树也分别可以充当为二叉查找树。 例如: 例如,我现在想要查找数值为14的节点。由于二叉查找树的特性,我们可...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
开源并不是你认为的那些事
点击上方蓝字 关注我们开源之道导读所以 ————想要理清开源是什么?先要厘清开源不是什么,名正言顺是句中国的古代成语,概念本身的理解非常之重要。大部分生物多样性的起源,...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
《C++ Primer》学习笔记(六):C++模块设计——函数
专栏C++学习笔记 《C++ Primer》学习笔记/习题答案 总目录 https://blog.csdn.net/TeFuirnever/article/details/100700212 —————————————————————————————————————————————————————— 《C++ Primer》习题参考答案:第6章 - C++模块设计——函数 文章目录专栏C+...
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法不过,当我看了源代码之后这程序不到50
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的 回答 - Bravo Yeung,获得该问题下回答中得最高赞(236赞和1枚专业勋章),对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalk
相关热词 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件 c#注册dll文件 c#安装.net
立即提问